Changeset 988 for vendor/current/source3/smbd/lanman.c
- Timestamp:
- Nov 24, 2016, 1:14:11 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/source3/smbd/lanman.c
r871 r988 80 80 81 81 static bool api_Unsupported(struct smbd_server_connection *sconn, 82 connection_struct *conn, uint 16vuid,82 connection_struct *conn, uint64_t vuid, 83 83 char *param, int tpscnt, 84 84 char *data, int tdscnt, … … 88 88 89 89 static bool api_TooSmall(struct smbd_server_connection *sconn, 90 connection_struct *conn, uint 16vuid, char *param, char *data,90 connection_struct *conn, uint64_t vuid, char *param, char *data, 91 91 int mdrcnt, int mprcnt, 92 92 char **rdata, char **rparam, … … 111 111 return 0; 112 112 } 113 buf = talloc_string_sub(ctx, buf,"%S", lp_servicename(snum));113 buf = talloc_string_sub(ctx, buf,"%S", lp_servicename(ctx, snum)); 114 114 if (!buf) { 115 115 *p_space_remaining = 0; … … 117 117 } 118 118 buf = talloc_sub_advanced(ctx, 119 lp_servicename(SNUM(conn)),120 conn->session_info->unix_ name,119 lp_servicename(ctx, SNUM(conn)), 120 conn->session_info->unix_info->unix_name, 121 121 conn->connectpath, 122 conn->session_info->u tok.gid,123 conn->session_info-> sanitized_username,124 conn->session_info->info 3->base.domain.string,122 conn->session_info->unix_token->gid, 123 conn->session_info->unix_info->sanitized_username, 124 conn->session_info->info->domain_name, 125 125 buf); 126 126 if (!buf) { … … 163 163 return 0; 164 164 } 165 buf = talloc_string_sub(ctx,buf,"%S",lp_servicename( snum));165 buf = talloc_string_sub(ctx,buf,"%S",lp_servicename(ctx, snum)); 166 166 if (!buf) { 167 167 return 0; 168 168 } 169 169 buf = talloc_sub_advanced(ctx, 170 lp_servicename(SNUM(conn)),171 conn->session_info->unix_ name,170 lp_servicename(ctx, SNUM(conn)), 171 conn->session_info->unix_info->unix_name, 172 172 conn->connectpath, 173 conn->session_info->u tok.gid,174 conn->session_info-> sanitized_username,175 conn->session_info->info 3->base.domain.string,173 conn->session_info->unix_token->gid, 174 conn->session_info->unix_info->sanitized_username, 175 conn->session_info->info->domain_name, 176 176 buf); 177 177 if (!buf) { … … 308 308 const char *str=NULL; 309 309 int is_string=0, stringused; 310 int32 temp;310 int32_t temp; 311 311 312 312 va_start(args,p); … … 613 613 int i; 614 614 fstring location; 615 trim_string( (char *)driver->driver_path, "\\print$\\WIN40\\0\\", 0);616 trim_string( (char *)driver->data_file, "\\print$\\WIN40\\0\\", 0);617 trim_string( (char *)driver->help_file, "\\print$\\WIN40\\0\\", 0);615 trim_string(discard_const_p(char, driver->driver_path), "\\print$\\WIN40\\0\\", 0); 616 trim_string(discard_const_p(char, driver->data_file), "\\print$\\WIN40\\0\\", 0); 617 trim_string(discard_const_p(char, driver->help_file), "\\print$\\WIN40\\0\\", 0); 618 618 619 619 PACKI(desc, "W", 0x0400); /* don't know */ … … 642 642 for ( i=0; i<count && driver->dependent_files && *driver->dependent_files[i]; i++) 643 643 { 644 trim_string( (char *)driver->dependent_files[i], "\\print$\\WIN40\\0\\", 0);644 trim_string(discard_const_p(char, driver->dependent_files[i]), "\\print$\\WIN40\\0\\", 0); 645 645 PACKS(desc,"z",driver->dependent_files[i]); /* driver files to copy */ 646 646 DEBUG(3,("Dependent File: %s:\n", driver->dependent_files[i])); … … 757 757 758 758 static bool api_DosPrintQGetInfo(struct smbd_server_connection *sconn, 759 connection_struct *conn, uint 16vuid,759 connection_struct *conn, uint64_t vuid, 760 760 char *param, int tpscnt, 761 761 char *data, int tdscnt, … … 833 833 834 834 status = rpc_pipe_open_interface(conn, 835 &ndr_table_spoolss .syntax_id,835 &ndr_table_spoolss, 836 836 conn->session_info, 837 &conn->sconn->client_id,837 conn->sconn->remote_address, 838 838 conn->sconn->msg_ctx, 839 839 &cli); … … 972 972 973 973 static bool api_DosPrintQEnum(struct smbd_server_connection *sconn, 974 connection_struct *conn, uint 16vuid,974 connection_struct *conn, uint64_t vuid, 975 975 char *param, int tpscnt, 976 976 char *data, int tdscnt, … … 1030 1030 1031 1031 status = rpc_pipe_open_interface(conn, 1032 &ndr_table_spoolss .syntax_id,1032 &ndr_table_spoolss, 1033 1033 conn->session_info, 1034 &conn->sconn->client_id,1034 conn->sconn->remote_address, 1035 1035 conn->sconn->msg_ctx, 1036 1036 &cli); … … 1160 1160 } 1161 1161 1162 out: 1162 1163 SAFE_FREE(subcntarr); 1163 out:1164 1164 *rdata_len = desc.usedlen; 1165 1165 *rparam_len = 8; … … 1207 1207 struct srv_info_struct { 1208 1208 fstring name; 1209 uint32 type;1209 uint32_t type; 1210 1210 fstring comment; 1211 1211 fstring domain; … … 1218 1218 ******************************************************************/ 1219 1219 1220 static int get_session_info(uint32 servertype,1220 static int get_session_info(uint32_t servertype, 1221 1221 struct srv_info_struct **servers, 1222 1222 const char *domain) … … 1227 1227 bool local_list_only; 1228 1228 int i; 1229 1230 lines = file_lines_load(cache_path(SERVER_LIST), NULL, 0, NULL); 1229 char *slist_cache_path = cache_path(SERVER_LIST); 1230 if (slist_cache_path == NULL) { 1231 return 0; 1232 } 1233 1234 lines = file_lines_load(slist_cache_path, NULL, 0, NULL); 1231 1235 if (!lines) { 1232 DEBUG(4,("Can't open %s - %s\n",cache_path(SERVER_LIST),strerror(errno))); 1236 DEBUG(4, ("Can't open %s - %s\n", 1237 slist_cache_path, strerror(errno))); 1238 TALLOC_FREE(slist_cache_path); 1233 1239 return 0; 1234 1240 } 1241 TALLOC_FREE(slist_cache_path); 1235 1242 1236 1243 /* request for everything is code for request all servers */ … … 1428 1435 static int srv_comp(struct srv_info_struct *s1,struct srv_info_struct *s2) 1429 1436 { 1430 return StrCaseCmp(s1->name,s2->name);1437 return strcasecmp_m(s1->name,s2->name); 1431 1438 } 1432 1439 … … 1437 1444 1438 1445 static bool api_RNetServerEnum2(struct smbd_server_connection *sconn, 1439 connection_struct *conn, uint 16vuid,1446 connection_struct *conn, uint64_t vuid, 1440 1447 char *param, int tpscnt, 1441 1448 char *data, int tdscnt, … … 1448 1455 int uLevel = get_safe_SVAL(param, tpscnt, p, 0, -1); 1449 1456 int buf_len = get_safe_SVAL(param,tpscnt, p, 2, 0); 1450 uint32 servertype = get_safe_IVAL(param,tpscnt,p,4, 0);1457 uint32_t servertype = get_safe_IVAL(param,tpscnt,p,4, 0); 1451 1458 char *p2; 1452 1459 int data_len, fixed_len, string_len; … … 1597 1604 * the network greater than or equal to the FirstNameToReturn. 1598 1605 */ 1599 int ret = StrCaseCmp(n1, n2);1606 int ret = strcasecmp_m(n1, n2); 1600 1607 1601 1608 if (ret <= 0) { … … 1607 1614 1608 1615 static bool api_RNetServerEnum3(struct smbd_server_connection *sconn, 1609 connection_struct *conn, uint 16vuid,1616 connection_struct *conn, uint64_t vuid, 1610 1617 char *param, int tpscnt, 1611 1618 char *data, int tdscnt, … … 1618 1625 int uLevel = get_safe_SVAL(param, tpscnt, p, 0, -1); 1619 1626 int buf_len = get_safe_SVAL(param,tpscnt, p, 2, 0); 1620 uint32 servertype = get_safe_IVAL(param,tpscnt,p,4, 0);1627 uint32_t servertype = get_safe_IVAL(param,tpscnt,p,4, 0); 1621 1628 char *p2; 1622 1629 int data_len, fixed_len, string_len; … … 1709 1716 for (;first > 0;) { 1710 1717 int ret; 1711 ret = StrCaseCmp(first_name,1718 ret = strcasecmp_m(first_name, 1712 1719 servers[first-1].name); 1713 1720 if (ret > 0) { … … 1800 1807 1801 1808 static bool api_RNetGroupGetUsers(struct smbd_server_connection *sconn, 1802 connection_struct *conn, uint 16vuid,1809 connection_struct *conn, uint64_t vuid, 1803 1810 char *param, int tpscnt, 1804 1811 char *data, int tdscnt, … … 1907 1914 1908 1915 if (uLevel > 0) { 1909 len += StrlenExpanded(conn,snum,lp_comment( snum));1916 len += StrlenExpanded(conn,snum,lp_comment(talloc_tos(), snum)); 1910 1917 } 1911 1918 if (uLevel > 1) { 1912 len += strlen(lp_path name(snum)) + 1;1919 len += strlen(lp_path(talloc_tos(), snum)) + 1; 1913 1920 } 1914 1921 if (buflen) { … … 1939 1946 } 1940 1947 1941 push_ascii(p,lp_servicename( snum),13, STR_TERMINATE);1948 push_ascii(p,lp_servicename(talloc_tos(), snum),13, STR_TERMINATE); 1942 1949 1943 1950 if (uLevel > 0) { … … 1946 1953 SCVAL(p,13,0); 1947 1954 type = STYPE_DISKTREE; 1948 if (lp_print _ok(snum)) {1955 if (lp_printable(snum)) { 1949 1956 type = STYPE_PRINTQ; 1950 1957 } … … 1954 1961 SSVAL(p,14,type); /* device type */ 1955 1962 SIVAL(p,16,PTR_DIFF(p2,baseaddr)); 1956 len += CopyExpanded(conn,snum,&p2,lp_comment( snum),&l2);1963 len += CopyExpanded(conn,snum,&p2,lp_comment(talloc_tos(),snum),&l2); 1957 1964 } 1958 1965 … … 1962 1969 SSVAL(p,24,1); /* current uses */ 1963 1970 SIVAL(p,26,PTR_DIFF(p2,baseaddr)); /* local pathname */ 1964 len += CopyAndAdvance(&p2,lp_path name(snum),&l2);1971 len += CopyAndAdvance(&p2,lp_path(talloc_tos(),snum),&l2); 1965 1972 memset(p+30,0,SHPWLEN+2); /* passwd (reserved), pad field */ 1966 1973 } … … 1991 1998 1992 1999 static bool api_RNetShareGetInfo(struct smbd_server_connection *sconn, 1993 connection_struct *conn,uint 16vuid,2000 connection_struct *conn,uint64_t vuid, 1994 2001 char *param, int tpscnt, 1995 2002 char *data, int tdscnt, … … 2006 2013 int snum; 2007 2014 2008 if (!str1 || !str2 || !netname || !p) {2015 if (!str1 || !str2 || !netname_in || !p) { 2009 2016 return False; 2010 2017 } … … 2056 2063 2057 2064 static bool api_RNetShareEnum(struct smbd_server_connection *sconn, 2058 connection_struct *conn, uint 16vuid,2065 connection_struct *conn, uint64_t vuid, 2059 2066 char *param, int tpscnt, 2060 2067 char *data, int tdscnt, … … 2092 2099 /* Ensure all the usershares are loaded. */ 2093 2100 become_root(); 2101 delete_and_reload_printers(sconn->ev_ctx, sconn->msg_ctx); 2094 2102 load_registry_shares(); 2095 count = load_usershare_shares( );2103 count = load_usershare_shares(NULL, connections_snum_used); 2096 2104 unbecome_root(); 2097 2105 … … 2102 2110 continue; 2103 2111 } 2104 push_ascii_fstring(servicename_dos, lp_servicename( i));2112 push_ascii_fstring(servicename_dos, lp_servicename(talloc_tos(), i)); 2105 2113 /* Maximum name length = 13. */ 2106 2114 if( lp_browseable( i ) && lp_snum_ok( i ) && (strlen(servicename_dos) < 13)) { … … 2134 2142 } 2135 2143 2136 push_ascii_fstring(servicename_dos, lp_servicename(i)); 2144 push_ascii_fstring(servicename_dos, 2145 lp_servicename(talloc_tos(), i)); 2137 2146 if (lp_browseable(i) && lp_snum_ok(i) && (strlen(servicename_dos) < 13)) { 2138 2147 if (fill_share_info( conn,i,uLevel,&p,&f_len,&p2,&s_len,*rdata ) < 0) { … … 2164 2173 2165 2174 static bool api_RNetShareAdd(struct smbd_server_connection *sconn, 2166 connection_struct *conn,uint 16vuid,2175 connection_struct *conn,uint64_t vuid, 2167 2176 char *param, int tpscnt, 2168 2177 char *data, int tdscnt, … … 2255 2264 } 2256 2265 2257 status = rpc_pipe_open_interface(mem_ctx, &ndr_table_srvsvc .syntax_id,2266 status = rpc_pipe_open_interface(mem_ctx, &ndr_table_srvsvc, 2258 2267 conn->session_info, 2259 &conn->sconn->client_id,2268 conn->sconn->remote_address, 2260 2269 conn->sconn->msg_ctx, 2261 2270 &cli); … … 2325 2334 2326 2335 static bool api_RNetGroupEnum(struct smbd_server_connection *sconn, 2327 connection_struct *conn,uint 16vuid,2336 connection_struct *conn,uint64_t vuid, 2328 2337 char *param, int tpscnt, 2329 2338 char *data, int tdscnt, … … 2341 2350 uint32_t num_groups; 2342 2351 uint32_t resume_handle; 2343 struct rpc_pipe_client *samr_pipe ;2352 struct rpc_pipe_client *samr_pipe = NULL; 2344 2353 struct policy_handle samr_handle, domain_handle; 2345 2354 NTSTATUS status, result; … … 2367 2376 2368 2377 status = rpc_pipe_open_interface( 2369 talloc_tos(), &ndr_table_samr .syntax_id,2370 conn->session_info, &conn->sconn->client_id,2378 talloc_tos(), &ndr_table_samr, 2379 conn->session_info, conn->sconn->remote_address, 2371 2380 conn->sconn->msg_ctx, &samr_pipe); 2372 2381 if (!NT_STATUS_IS_OK(status)) { … … 2378 2387 b = samr_pipe->binding_handle; 2379 2388 2380 status = dcerpc_samr_Connect2(b, talloc_tos(), global_myname(),2389 status = dcerpc_samr_Connect2(b, talloc_tos(), lp_netbios_name(), 2381 2390 SAMR_ACCESS_LOOKUP_DOMAIN, &samr_handle, 2382 2391 &result); … … 2507 2516 2508 2517 static bool api_NetUserGetGroups(struct smbd_server_connection *sconn, 2509 connection_struct *conn,uint 16vuid,2518 connection_struct *conn,uint64_t vuid, 2510 2519 char *param, int tpscnt, 2511 2520 char *data, int tdscnt, … … 2525 2534 char *endp = NULL; 2526 2535 2527 struct rpc_pipe_client *samr_pipe ;2536 struct rpc_pipe_client *samr_pipe = NULL; 2528 2537 struct policy_handle samr_handle, domain_handle, user_handle; 2529 2538 struct lsa_String name; … … 2573 2582 2574 2583 status = rpc_pipe_open_interface( 2575 talloc_tos(), &ndr_table_samr .syntax_id,2576 conn->session_info, &conn->sconn->client_id,2584 talloc_tos(), &ndr_table_samr, 2585 conn->session_info, conn->sconn->remote_address, 2577 2586 conn->sconn->msg_ctx, &samr_pipe); 2578 2587 if (!NT_STATUS_IS_OK(status)) { … … 2584 2593 b = samr_pipe->binding_handle; 2585 2594 2586 status = dcerpc_samr_Connect2(b, talloc_tos(), global_myname(),2595 status = dcerpc_samr_Connect2(b, talloc_tos(), lp_netbios_name(), 2587 2596 SAMR_ACCESS_LOOKUP_DOMAIN, &samr_handle, 2588 2597 &result); … … 2710 2719 2711 2720 static bool api_RNetUserEnum(struct smbd_server_connection *sconn, 2712 connection_struct *conn, uint 16vuid,2721 connection_struct *conn, uint64_t vuid, 2713 2722 char *param, int tpscnt, 2714 2723 char *data, int tdscnt, … … 2723 2732 uint32_t resume_handle; 2724 2733 2725 struct rpc_pipe_client *samr_pipe ;2734 struct rpc_pipe_client *samr_pipe = NULL; 2726 2735 struct policy_handle samr_handle, domain_handle; 2727 2736 NTSTATUS status, result; … … 2773 2782 2774 2783 status = rpc_pipe_open_interface( 2775 talloc_tos(), &ndr_table_samr .syntax_id,2776 conn->session_info, &conn->sconn->client_id,2784 talloc_tos(), &ndr_table_samr, 2785 conn->session_info, conn->sconn->remote_address, 2777 2786 conn->sconn->msg_ctx, &samr_pipe); 2778 2787 if (!NT_STATUS_IS_OK(status)) { … … 2784 2793 b = samr_pipe->binding_handle; 2785 2794 2786 status = dcerpc_samr_Connect2(b, talloc_tos(), global_myname(),2795 status = dcerpc_samr_Connect2(b, talloc_tos(), lp_netbios_name(), 2787 2796 SAMR_ACCESS_LOOKUP_DOMAIN, &samr_handle, 2788 2797 &result); … … 2893 2902 2894 2903 static bool api_NetRemoteTOD(struct smbd_server_connection *sconn, 2895 connection_struct *conn,uint 16vuid,2904 connection_struct *conn,uint64_t vuid, 2896 2905 char *param, int tpscnt, 2897 2906 char *data, int tdscnt, … … 2952 2961 2953 2962 static bool api_SamOEMChangePassword(struct smbd_server_connection *sconn, 2954 connection_struct *conn,uint 16vuid,2963 connection_struct *conn,uint64_t vuid, 2955 2964 char *param, int tpscnt, 2956 2965 char *data, int tdscnt, … … 3036 3045 memcpy(hash.hash, data+516, 16); 3037 3046 3038 status = rpc_pipe_open_interface(mem_ctx, &ndr_table_samr .syntax_id,3047 status = rpc_pipe_open_interface(mem_ctx, &ndr_table_samr, 3039 3048 conn->session_info, 3040 &conn->sconn->client_id,3049 conn->sconn->remote_address, 3041 3050 conn->sconn->msg_ctx, 3042 3051 &cli); … … 3050 3059 b = cli->binding_handle; 3051 3060 3052 init_lsa_AsciiString(&server, global_myname());3061 init_lsa_AsciiString(&server, lp_netbios_name()); 3053 3062 init_lsa_AsciiString(&account, user); 3054 3063 … … 3082 3091 3083 3092 static bool api_RDosPrintJobDel(struct smbd_server_connection *sconn, 3084 connection_struct *conn,uint 16vuid,3093 connection_struct *conn,uint64_t vuid, 3085 3094 char *param, int tpscnt, 3086 3095 char *data, int tdscnt, … … 3093 3102 char *str2 = skip_string(param,tpscnt,str1); 3094 3103 char *p = skip_string(param,tpscnt,str2); 3095 uint32 jobid;3104 uint32_t jobid; 3096 3105 fstring sharename; 3097 3106 int errcode; … … 3133 3142 3134 3143 status = rpc_pipe_open_interface(conn, 3135 &ndr_table_spoolss .syntax_id,3144 &ndr_table_spoolss, 3136 3145 conn->session_info, 3137 &conn->sconn->client_id,3146 conn->sconn->remote_address, 3138 3147 conn->sconn->msg_ctx, 3139 3148 &cli); … … 3215 3224 3216 3225 static bool api_WPrintQueueCtrl(struct smbd_server_connection *sconn, 3217 connection_struct *conn,uint 16vuid,3226 connection_struct *conn,uint64_t vuid, 3218 3227 char *param, int tpscnt, 3219 3228 char *data, int tdscnt, … … 3261 3270 3262 3271 status = rpc_pipe_open_interface(conn, 3263 &ndr_table_spoolss .syntax_id,3272 &ndr_table_spoolss, 3264 3273 conn->session_info, 3265 &conn->sconn->client_id,3274 conn->sconn->remote_address, 3266 3275 conn->sconn->msg_ctx, 3267 3276 &cli); … … 3377 3386 3378 3387 static bool api_PrintJobInfo(struct smbd_server_connection *sconn, 3379 connection_struct *conn, uint 16vuid,3388 connection_struct *conn, uint64_t vuid, 3380 3389 char *param, int tpscnt, 3381 3390 char *data, int tdscnt, … … 3388 3397 char *str2 = skip_string(param,tpscnt,str1); 3389 3398 char *p = skip_string(param,tpscnt,str2); 3390 uint32 jobid;3399 uint32_t jobid; 3391 3400 fstring sharename; 3392 3401 int uLevel = get_safe_SVAL(param,tpscnt,p,2,-1); … … 3443 3452 3444 3453 status = rpc_pipe_open_interface(conn, 3445 &ndr_table_spoolss .syntax_id,3454 &ndr_table_spoolss, 3446 3455 conn->session_info, 3447 &conn->sconn->client_id,3456 conn->sconn->remote_address, 3448 3457 conn->sconn->msg_ctx, 3449 3458 &cli); … … 3537 3546 3538 3547 static bool api_RNetServerGetInfo(struct smbd_server_connection *sconn, 3539 connection_struct *conn,uint 16vuid,3548 connection_struct *conn,uint64_t vuid, 3540 3549 char *param, int tpscnt, 3541 3550 char *data, int tdscnt, … … 3620 3629 p2 = p + struct_len; 3621 3630 3622 status = rpc_pipe_open_interface(mem_ctx, &ndr_table_srvsvc .syntax_id,3631 status = rpc_pipe_open_interface(mem_ctx, &ndr_table_srvsvc, 3623 3632 conn->session_info, 3624 &conn->sconn->client_id,3633 conn->sconn->remote_address, 3625 3634 conn->sconn->msg_ctx, 3626 3635 &cli); … … 3654 3663 3655 3664 if (uLevel != 20) { 3656 srvstr_push(NULL, 0, p, info.info101->server_name, 16, 3657 STR_ASCII|STR_UPPER|STR_TERMINATE); 3665 size_t len = 0; 3666 status = srvstr_push(NULL, 0, p, info.info101->server_name, 16, 3667 STR_ASCII|STR_UPPER|STR_TERMINATE, &len); 3668 if (!NT_STATUS_IS_OK(status)) { 3669 errcode = W_ERROR_V(ntstatus_to_werror(status)); 3670 goto out; 3671 } 3658 3672 } 3659 3673 p += 16; … … 3709 3723 3710 3724 static bool api_NetWkstaGetInfo(struct smbd_server_connection *sconn, 3711 connection_struct *conn,uint 16vuid,3725 connection_struct *conn,uint64_t vuid, 3712 3726 char *param, int tpscnt, 3713 3727 char *data, int tdscnt, … … 3759 3773 SIVAL(p,0,PTR_DIFF(p2,*rdata)); /* host name */ 3760 3774 strlcpy(p2,get_local_machine_name(),PTR_DIFF(endp,p2)); 3761 strupper_m(p2); 3775 if (!strupper_m(p2)) { 3776 return false; 3777 } 3762 3778 p2 = skip_string(*rdata,*rdata_len,p2); 3763 3779 if (!p2) { … … 3767 3783 3768 3784 SIVAL(p,0,PTR_DIFF(p2,*rdata)); 3769 strlcpy(p2,conn->session_info-> sanitized_username,PTR_DIFF(endp,p2));3785 strlcpy(p2,conn->session_info->unix_info->sanitized_username,PTR_DIFF(endp,p2)); 3770 3786 p2 = skip_string(*rdata,*rdata_len,p2); 3771 3787 if (!p2) { … … 3776 3792 SIVAL(p,0,PTR_DIFF(p2,*rdata)); /* login domain */ 3777 3793 strlcpy(p2,lp_workgroup(),PTR_DIFF(endp,p2)); 3778 strupper_m(p2); 3794 if (!strupper_m(p2)) { 3795 return false; 3796 } 3779 3797 p2 = skip_string(*rdata,*rdata_len,p2); 3780 3798 if (!p2) { … … 3783 3801 p += 4; 3784 3802 3785 SCVAL(p,0, lp_major_announce_version()); /* system version - e.g 4 in 4.1 */3786 SCVAL(p,1, lp_minor_announce_version()); /* system version - e.g .1 in 4.1 */3803 SCVAL(p,0,SAMBA_MAJOR_NBT_ANNOUNCE_VERSION); /* system version - e.g 4 in 4.1 */ 3804 SCVAL(p,1,SAMBA_MINOR_NBT_ANNOUNCE_VERSION); /* system version - e.g .1 in 4.1 */ 3787 3805 p += 2; 3788 3806 … … 3973 3991 3974 3992 static bool api_RNetUserGetInfo(struct smbd_server_connection *sconn, 3975 connection_struct *conn, uint 16vuid,3993 connection_struct *conn, uint64_t vuid, 3976 3994 char *param, int tpscnt, 3977 3995 char *data, int tdscnt, … … 4049 4067 ZERO_STRUCT(user_handle); 4050 4068 4051 status = rpc_pipe_open_interface(mem_ctx, &ndr_table_samr .syntax_id,4069 status = rpc_pipe_open_interface(mem_ctx, &ndr_table_samr, 4052 4070 conn->session_info, 4053 &conn->sconn->client_id,4071 conn->sconn->remote_address, 4054 4072 conn->sconn->msg_ctx, 4055 4073 &cli); … … 4064 4082 4065 4083 status = dcerpc_samr_Connect2(b, mem_ctx, 4066 global_myname(),4084 lp_netbios_name(), 4067 4085 SAMR_ACCESS_CONNECT_TO_SERVER | 4068 4086 SAMR_ACCESS_ENUM_DOMAINS | … … 4370 4388 4371 4389 static bool api_WWkstaUserLogon(struct smbd_server_connection *sconn, 4372 connection_struct *conn,uint 16vuid,4390 connection_struct *conn,uint64_t vuid, 4373 4391 char *param, int tpscnt, 4374 4392 char *data, int tdscnt, … … 4385 4403 /* With share level security vuid will always be zero. 4386 4404 Don't depend on vuser being non-null !!. JRA */ 4387 user_struct *vuser = get_valid_user_struct(sconn, vuid);4405 struct user_struct *vuser = get_valid_user_struct(sconn, vuid); 4388 4406 4389 4407 if (!str1 || !str2 || !p) { … … 4393 4411 if(vuser != NULL) { 4394 4412 DEBUG(3,(" Username of UID %d is %s\n", 4395 (int)vuser->session_info->u tok.uid,4396 vuser->session_info->unix_ name));4413 (int)vuser->session_info->unix_token->uid, 4414 vuser->session_info->unix_info->unix_name)); 4397 4415 } 4398 4416 … … 4448 4466 fstrcpy(mypath,"\\\\"); 4449 4467 fstrcat(mypath,get_local_machine_name()); 4450 strupper_m(mypath); 4468 if (!strupper_m(mypath)) { 4469 return false; 4470 } 4451 4471 PACKS(&desc,"z",mypath); /* computer */ 4452 4472 } … … 4454 4474 PACKS(&desc,"z",lp_workgroup());/* domain */ 4455 4475 PACKS(&desc,"z", vuser ? 4456 vuser->session_info->info3->base.logon_script.string4476 vuser->session_info->info->logon_script 4457 4477 : ""); /* script path */ 4458 4478 PACKI(&desc,"D",0x00000000); /* reserved */ … … 4479 4499 4480 4500 static bool api_WAccessGetUserPerms(struct smbd_server_connection *sconn, 4481 connection_struct *conn,uint 16vuid,4501 connection_struct *conn,uint64_t vuid, 4482 4502 char *param, int tpscnt, 4483 4503 char *data, int tdscnt, … … 4525 4545 4526 4546 static bool api_WPrintJobGetInfo(struct smbd_server_connection *sconn, 4527 connection_struct *conn, uint 16vuid,4547 connection_struct *conn, uint64_t vuid, 4528 4548 char *param, int tpscnt, 4529 4549 char *data, int tdscnt, … … 4537 4557 int uLevel; 4538 4558 fstring sharename; 4539 uint32 jobid;4559 uint32_t jobid; 4540 4560 struct pack_desc desc; 4541 4561 char *tmpdata=NULL; … … 4576 4596 4577 4597 status = rpc_pipe_open_interface(conn, 4578 &ndr_table_spoolss .syntax_id,4598 &ndr_table_spoolss, 4579 4599 conn->session_info, 4580 &conn->sconn->client_id,4600 conn->sconn->remote_address, 4581 4601 conn->sconn->msg_ctx, 4582 4602 &cli); … … 4663 4683 4664 4684 static bool api_WPrintJobEnumerate(struct smbd_server_connection *sconn, 4665 connection_struct *conn, uint 16vuid,4685 connection_struct *conn, uint64_t vuid, 4666 4686 char *param, int tpscnt, 4667 4687 char *data, int tdscnt, … … 4718 4738 4719 4739 status = rpc_pipe_open_interface(conn, 4720 &ndr_table_spoolss .syntax_id,4740 &ndr_table_spoolss, 4721 4741 conn->session_info, 4722 &conn->sconn->client_id,4742 conn->sconn->remote_address, 4723 4743 conn->sconn->msg_ctx, 4724 4744 &cli); … … 4839 4859 strncpy(buf, info2->printername, sizeof(buf)-1); 4840 4860 buf[sizeof(buf)-1] = 0; 4841 strupper_m(buf);4861 (void)strupper_m(buf); 4842 4862 4843 4863 if (uLevel <= 1) { … … 4869 4889 4870 4890 static bool api_WPrintDestGetInfo(struct smbd_server_connection *sconn, 4871 connection_struct *conn, uint 16vuid,4891 connection_struct *conn, uint64_t vuid, 4872 4892 char *param, int tpscnt, 4873 4893 char *data, int tdscnt, … … 4918 4938 4919 4939 status = rpc_pipe_open_interface(conn, 4920 &ndr_table_spoolss .syntax_id,4940 &ndr_table_spoolss, 4921 4941 conn->session_info, 4922 &conn->sconn->client_id,4942 conn->sconn->remote_address, 4923 4943 conn->sconn->msg_ctx, 4924 4944 &cli); … … 5007 5027 5008 5028 static bool api_WPrintDestEnum(struct smbd_server_connection *sconn, 5009 connection_struct *conn, uint 16vuid,5029 connection_struct *conn, uint64_t vuid, 5010 5030 char *param, int tpscnt, 5011 5031 char *data, int tdscnt, … … 5050 5070 5051 5071 status = rpc_pipe_open_interface(conn, 5052 &ndr_table_spoolss .syntax_id,5072 &ndr_table_spoolss, 5053 5073 conn->session_info, 5054 &conn->sconn->client_id,5074 conn->sconn->remote_address, 5055 5075 conn->sconn->msg_ctx, 5056 5076 &cli); … … 5118 5138 5119 5139 static bool api_WPrintDriverEnum(struct smbd_server_connection *sconn, 5120 connection_struct *conn, uint 16vuid,5140 connection_struct *conn, uint64_t vuid, 5121 5141 char *param, int tpscnt, 5122 5142 char *data, int tdscnt, … … 5182 5202 5183 5203 static bool api_WPrintQProcEnum(struct smbd_server_connection *sconn, 5184 connection_struct *conn, uint 16vuid,5204 connection_struct *conn, uint64_t vuid, 5185 5205 char *param, int tpscnt, 5186 5206 char *data, int tdscnt, … … 5246 5266 5247 5267 static bool api_WPrintPortEnum(struct smbd_server_connection *sconn, 5248 connection_struct *conn, uint 16vuid,5268 connection_struct *conn, uint64_t vuid, 5249 5269 char *param, int tpscnt, 5250 5270 char *data, int tdscnt, … … 5316 5336 5317 5337 static bool api_RNetSessionEnum(struct smbd_server_connection *sconn, 5318 connection_struct *conn, uint 16vuid,5338 connection_struct *conn, uint64_t vuid, 5319 5339 char *param, int tpscnt, 5320 5340 char *data, int tdscnt, … … 5361 5381 5362 5382 status = rpc_pipe_open_interface(conn, 5363 &ndr_table_srvsvc .syntax_id,5383 &ndr_table_srvsvc, 5364 5384 conn->session_info, 5365 &conn->sconn->client_id,5385 conn->sconn->remote_address, 5366 5386 conn->sconn->msg_ctx, 5367 5387 &cli); … … 5455 5475 5456 5476 static bool api_TooSmall(struct smbd_server_connection *sconn, 5457 connection_struct *conn,uint 16vuid, char *param, char *data,5477 connection_struct *conn,uint64_t vuid, char *param, char *data, 5458 5478 int mdrcnt, int mprcnt, 5459 5479 char **rdata, char **rparam, … … 5480 5500 5481 5501 static bool api_Unsupported(struct smbd_server_connection *sconn, 5482 connection_struct *conn, uint 16vuid,5502 connection_struct *conn, uint64_t vuid, 5483 5503 char *param, int tpscnt, 5484 5504 char *data, int tdscnt, … … 5507 5527 int id; 5508 5528 bool (*fn)(struct smbd_server_connection *sconn, 5509 connection_struct *, uint 16,5529 connection_struct *, uint64_t, 5510 5530 char *, int, 5511 5531 char *, int, … … 5558 5578 ****************************************************************************/ 5559 5579 5560 void api_reply(connection_struct *conn, uint 16vuid,5580 void api_reply(connection_struct *conn, uint64_t vuid, 5561 5581 struct smb_request *req, 5562 5582 char *data, char *params, … … 5612 5632 5613 5633 if (api_commands[i].auth_user && lp_restrict_anonymous()) { 5614 user_struct *user = get_valid_user_struct(req->sconn, vuid);5615 5616 if (!user || user->session_info->guest) {5634 struct user_struct *user = get_valid_user_struct(req->sconn, vuid); 5635 5636 if (!user || security_session_user_level(user->session_info, NULL) < SECURITY_USER) { 5617 5637 reply_nterror(req, NT_STATUS_ACCESS_DENIED); 5618 5638 return;
Note:
See TracChangeset
for help on using the changeset viewer.