Changeset 773 for branches/samba-3.5.x/source3/rpc_server
- Timestamp:
- Jul 2, 2013, 7:27:06 PM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/samba-3.5.x/source3/rpc_server/srv_srvsvc_nt.c
r454 r773 1419 1419 DEBUG(5,("_srvsvc_NetShareGetInfo: %d\n", __LINE__)); 1420 1420 1421 fstrcpy(share_name, r->in.share_name); 1422 1423 snum = find_service(share_name); 1421 if (!r->in.share_name) { 1422 return WERR_INVALID_NAME; 1423 } 1424 1425 snum = find_service(r->in.share_name, share_name); 1424 1426 if (snum < 0) { 1425 1427 return WERR_INVALID_NAME; … … 1535 1537 { 1536 1538 char *command = NULL; 1537 char *share_name = NULL;1539 fstring share_name; 1538 1540 char *comment = NULL; 1539 1541 const char *pathname = NULL; … … 1551 1553 DEBUG(5,("_srvsvc_NetShareSetInfo: %d\n", __LINE__)); 1552 1554 1553 share_name = talloc_strdup(p->mem_ctx, r->in.share_name); 1554 if (!share_name) { 1555 return WERR_NOMEM; 1555 if (!r->in.share_name) { 1556 return WERR_INVALID_NAME; 1556 1557 } 1557 1558 … … 1560 1561 } 1561 1562 1562 if ( strequal( share_name,"IPC$")1563 || ( lp_enable_asu_support() && strequal( share_name,"ADMIN$") )1564 || strequal( share_name,"global") )1563 if ( strequal(r->in.share_name,"IPC$") 1564 || ( lp_enable_asu_support() && strequal(r->in.share_name,"ADMIN$") ) 1565 || strequal(r->in.share_name,"global") ) 1565 1566 { 1566 1567 DEBUG(5,("_srvsvc_NetShareSetInfo: share %s cannot be " 1567 1568 "modified by a remote user.\n", 1568 share_name ));1569 r->in.share_name )); 1569 1570 return WERR_ACCESS_DENIED; 1570 1571 } 1571 1572 1572 snum = find_service( share_name);1573 snum = find_service(r->in.share_name, share_name); 1573 1574 1574 1575 /* Does this share exist ? */ … … 1765 1766 { 1766 1767 char *command = NULL; 1767 char *share_name = NULL; 1768 char *share_name_in = NULL; 1769 fstring share_name; 1768 1770 char *comment = NULL; 1769 1771 char *pathname = NULL; … … 1802 1804 return WERR_ACCESS_DENIED; 1803 1805 case 2: 1804 share_name = talloc_strdup(ctx, r->in.info->info2->name);1806 share_name_in = talloc_strdup(ctx, r->in.info->info2->name); 1805 1807 comment = talloc_strdup(ctx, r->in.info->info2->comment); 1806 1808 pathname = talloc_strdup(ctx, r->in.info->info2->path); … … 1813 1815 return WERR_ACCESS_DENIED; 1814 1816 case 502: 1815 share_name = talloc_strdup(ctx, r->in.info->info502->name);1817 share_name_in = talloc_strdup(ctx, r->in.info->info502->name); 1816 1818 comment = talloc_strdup(ctx, r->in.info->info502->comment); 1817 1819 pathname = talloc_strdup(ctx, r->in.info->info502->path); … … 1841 1843 /* check for invalid share names */ 1842 1844 1843 if (!share_name || !validate_net_name(share_name,1845 if (!share_name_in || !validate_net_name(share_name_in, 1844 1846 INVALID_SHARENAME_CHARS, 1845 strlen(share_name ))) {1847 strlen(share_name_in))) { 1846 1848 DEBUG(5,("_srvsvc_NetShareAdd: Bad sharename \"%s\"\n", 1847 share_name ? share_name: ""));1849 share_name_in ? share_name_in : "")); 1848 1850 return WERR_INVALID_NAME; 1849 1851 } 1850 1852 1851 if (strequal(share_name ,"IPC$") || strequal(share_name,"global")1853 if (strequal(share_name_in,"IPC$") || strequal(share_name_in,"global") 1852 1854 || (lp_enable_asu_support() && 1853 strequal(share_name ,"ADMIN$"))) {1855 strequal(share_name_in,"ADMIN$"))) { 1854 1856 return WERR_ACCESS_DENIED; 1855 1857 } 1856 1858 1857 snum = find_service(share_name );1859 snum = find_service(share_name_in, share_name); 1858 1860 1859 1861 /* Share already exists. */ … … 1873 1875 1874 1876 /* Ensure share name, pathname and comment don't contain '"' characters. */ 1875 string_replace(share_name , '"', ' ');1877 string_replace(share_name_in, '"', ' '); 1876 1878 string_replace(path, '"', ' '); 1877 1879 if (comment) { … … 1883 1885 lp_add_share_cmd(), 1884 1886 get_dyn_CONFIGFILE(), 1885 share_name ,1887 share_name_in, 1886 1888 path, 1887 1889 comment ? comment : "", … … 1920 1922 1921 1923 if (psd) { 1924 /* Note we use share_name here, not share_name_in as 1925 we need a canonicalized name for setting security. */ 1922 1926 if (!set_share_security(share_name, psd)) { 1923 1927 DEBUG(0,("_srvsvc_NetShareAdd: Failed to add security info to share %s.\n", … … 1947 1951 { 1948 1952 char *command = NULL; 1949 char *share_name = NULL;1953 fstring share_name; 1950 1954 int ret; 1951 1955 int snum; … … 1957 1961 DEBUG(5,("_srvsvc_NetShareDel: %d\n", __LINE__)); 1958 1962 1959 share_name = talloc_strdup(p->mem_ctx, r->in.share_name); 1960 if (!share_name) { 1963 if (!r->in.share_name) { 1961 1964 return WERR_NET_NAME_NOT_FOUND; 1962 1965 } 1963 if ( strequal( share_name,"IPC$")1964 || ( lp_enable_asu_support() && strequal( share_name,"ADMIN$") )1965 || strequal( share_name,"global") )1966 if ( strequal(r->in.share_name,"IPC$") 1967 || ( lp_enable_asu_support() && strequal(r->in.share_name,"ADMIN$") ) 1968 || strequal(r->in.share_name,"global") ) 1966 1969 { 1967 1970 return WERR_ACCESS_DENIED; 1968 1971 } 1969 1972 1970 if (!(params = get_share_params(p->mem_ctx, share_name))) {1973 if (!(params = get_share_params(p->mem_ctx, r->in.share_name))) { 1971 1974 return WERR_NO_SUCH_SHARE; 1972 1975 } 1973 1976 1974 snum = find_service( share_name);1977 snum = find_service(r->in.share_name, share_name); 1975 1978 1976 1979 /* No change to printer shares. */ … … 2115 2118 ZERO_STRUCT(st); 2116 2119 2117 fstrcpy(servicename, r->in.share); 2118 2119 snum = find_service(servicename); 2120 if (!r->in.share) { 2121 return WERR_INVALID_NAME; 2122 } 2123 2124 snum = find_service(r->in.share, servicename); 2120 2125 if (snum == -1) { 2121 2126 DEBUG(10, ("Could not find service %s\n", servicename)); … … 2245 2250 ZERO_STRUCT(st); 2246 2251 2247 fstrcpy(servicename, r->in.share); 2248 2249 snum = find_service(servicename); 2252 if (!r->in.share) { 2253 return WERR_INVALID_NAME; 2254 } 2255 2256 snum = find_service(r->in.share, servicename); 2250 2257 if (snum == -1) { 2251 2258 DEBUG(10, ("Could not find service %s\n", servicename));
Note:
See TracChangeset
for help on using the changeset viewer.