Ignore:
Timestamp:
Jul 2, 2013, 7:27:06 PM (12 years ago)
Author:
Herwig Bauernfeind
Message:

Samba Server 3.5: Update branch to 3.5.20

Location:
branches/samba-3.5.x/source3
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.5.x/source3/VERSION

    r739 r773  
    2626SAMBA_VERSION_MAJOR=3
    2727SAMBA_VERSION_MINOR=5
    28 SAMBA_VERSION_RELEASE=19
     28SAMBA_VERSION_RELEASE=20
    2929
    3030########################################################
  • branches/samba-3.5.x/source3/build.cmd

    r743 r773  
    157157
    158158/* run configure */
    159     address cmd 'sh ./configure --enable-pie=no --prefix=/samba --disable-shared --with-acl-support --cache-file=build.cache 2>&1 | tee configure.log'
     159    address cmd 'kmk_ash ./configure --enable-pie=no --prefix=/samba --disable-shared --with-acl-support  2>&1 | tee configure.log'
     160    /* --cache-file=build.cache */
    160161    address cmd 'ENDLOCAL'
    161162end
     
    251252    ok = stream(Version,'c','close')
    252253    ok = stream(NewVersion,'c','close')
    253     address cmd "ksh ./script/mkversion.sh "NewVersion" >NUL"
     254    address cmd "sh ./script/mkversion.sh "NewVersion" >NUL"
    254255    ok = SysFileDelete(NewVersion)
    255256    verstring = suffix'-'Major'.'minor'.'release'.'revision'-'vendor'-'date('S')
  • branches/samba-3.5.x/source3/configure

    r739 r773  
    87628762done
    87638763
    8764 for ac_func in pread pwrite strndup strcasestr strtok_r mkdtemp dup2
     8764for ac_func in pread pwrite strndup strcasestr strtok_r mkdtemp dup2 dprintf vdprintf
    87658765do :
    87668766  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
     
    93149314  cat >>confdefs.h <<_ACEOF
    93159315#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
     9316_ACEOF
     9317
     9318fi
     9319done
     9320
     9321
     9322for ac_func in memmem
     9323do :
     9324  ac_fn_c_check_func "$LINENO" "memmem" "ac_cv_func_memmem"
     9325if test "x$ac_cv_func_memmem" = xyes; then :
     9326  cat >>confdefs.h <<_ACEOF
     9327#define HAVE_MEMMEM 1
    93169328_ACEOF
    93179329
  • branches/samba-3.5.x/source3/include/config.h.in

    r620 r773  
    498498#undef HAVE_DN_EXPAND
    499499
     500/* Define to 1 if you have the `dprintf' function. */
     501#undef HAVE_DPRINTF
     502
    500503/* struct dqblk .dqb_fsoftlimit */
    501504#undef HAVE_DQB_FSOFTLIMIT
     
    15121515#undef HAVE_MEMCPY
    15131516
     1517/* Define to 1 if you have the `memmem' function. */
     1518#undef HAVE_MEMMEM
     1519
    15141520/* Define to 1 if you have the `memmove' function. */
    15151521#undef HAVE_MEMMOVE
     
    26712677/* Whether va_copy() is available */
    26722678#undef HAVE_VA_COPY
     2679
     2680/* Define to 1 if you have the `vdprintf' function. */
     2681#undef HAVE_VDPRINTF
    26732682
    26742683/* Whether the C compiler understands volatile */
  • branches/samba-3.5.x/source3/include/proto.h

    r738 r773  
    70037003void load_registry_shares(void);
    70047004int add_home_service(const char *service, const char *username, const char *homedir);
    7005 int find_service(fstring service);
     7005int find_service(const char *service_in, fstring service);
    70067006connection_struct *make_connection_snum(struct smbd_server_connection *sconn,
    70077007                                        int snum, user_struct *vuser,
  • branches/samba-3.5.x/source3/lib/dummysmbd.c

    r414 r773  
    2929}
    3030
    31 int find_service(fstring service)
     31int find_service(const char *service_in, fstring service)
    3232{
    3333        return -1;
  • branches/samba-3.5.x/source3/lib/os2helper.c

    r698 r773  
    491491        PFEA2LIST   pfea2list = NULL;
    492492        char * p;
    493        
     493        DEBUG(4,("unisetxattr : (%s:%d) %s %d\n", path ? path : "null", file, name, size));
    494494        if ((!path && !file) || !name || (!value && size))
    495495        {
  • branches/samba-3.5.x/source3/lib/util_str.c

    r599 r773  
    513513                        "called from [%s][%d]\n", fn, line));
    514514                return NULL;
     515        }
     516
     517        if (src == dest) {
     518                return dest;
    515519        }
    516520
     
    23022306        int i;
    23032307
     2308        if (!name) {
     2309                return false;
     2310        }
     2311
    23042312        for ( i=0; i<max_len && name[i]; i++ ) {
    23052313                /* fail if strchr_m() finds one of the invalid characters */
  • branches/samba-3.5.x/source3/lib/util_unistr.c

    r414 r773  
    4646                else
    4747                        SAFE_FREE(upcase_table);
     48                upcase_table = NULL;
    4849        }
    4950
     
    5354                else
    5455                        SAFE_FREE(lowcase_table);
     56                lowcase_table = NULL;
    5557        }
    5658
     
    6062                else
    6163                        SAFE_FREE(valid_table);
     64                valid_table = NULL;
    6265        }
    6366        initialized = false;
  • branches/samba-3.5.x/source3/libaddns/dnsgss.c

    r596 r773  
    165165                        struct dns_buffer *buf;
    166166                        struct dns_tkey_record *tkey;
     167                        struct dns_rrec *tkey_answer = NULL;
     168                        uint16_t i;
    167169
    168170                        err = dns_receive(mem_ctx, conn, &buf);
     
    175177                         * TODO: Compare id and keyname
    176178                         */
    177                        
    178                         if ((resp->num_additionals != 1) ||
    179                             (resp->num_answers == 0) ||
    180                             (resp->answers[0]->type != QTYPE_TKEY)) {
     179
     180                        for (i=0; i < resp->num_answers; i++) {
     181                                if (resp->answers[i]->type != QTYPE_TKEY) {
     182                                        continue;
     183                                }
     184
     185                                tkey_answer = resp->answers[i];
     186                        }
     187
     188                        if (tkey_answer == NULL) {
    181189                                err = ERROR_DNS_INVALID_MESSAGE;
    182190                                goto error;
  • branches/samba-3.5.x/source3/modules/vfs_xattr_tdb.c

    r414 r773  
    734734        }
    735735
    736         fstrcpy(sname, service);
    737         snum = find_service(sname);
     736        snum = find_service(service, sname);
    738737        if (snum == -1) {
    739738                /*
  • branches/samba-3.5.x/source3/param/loadparm.c

    r736 r773  
    95289528{
    95299529        struct share_params *result;
    9530         char *sname;
     9530        fstring sname;
    95319531        int snum;
    95329532
    9533         if (!(sname = SMB_STRDUP(sharename))) {
    9534                 return NULL;
    9535         }
    9536 
    9537         snum = find_service(sname);
    9538         SAFE_FREE(sname);
     9533        snum = find_service(sharename, sname);
    95399534
    95409535        if (snum < 0) {
  • branches/samba-3.5.x/source3/printing/nt_printing.c

    r599 r773  
    14731473        }
    14741474
    1475         fstrcpy(printdollar, "print$");
    1476 
    1477         printdollar_snum = find_service(printdollar);
     1475        printdollar_snum = find_service("print$", printdollar);
    14781476        if (printdollar_snum == -1) {
    14791477                *perr = WERR_NO_SUCH_SHARE;
     
    18651863        }
    18661864
    1867         fstrcpy(printdollar, "print$");
    1868 
    1869         printdollar_snum = find_service(printdollar);
     1865        printdollar_snum = find_service("print$", printdollar);
    18701866        if (printdollar_snum == -1) {
    18711867                *perr = WERR_NO_SUCH_SHARE;
     
    51355131                r->driver_name, r->version));
    51365132
    5137         fstrcpy(printdollar, "print$");
    5138 
    5139         printdollar_snum = find_service(printdollar);
     5133        printdollar_snum = find_service("print$", printdollar);
    51405134        if (printdollar_snum == -1) {
    51415135                return false;
  • branches/samba-3.5.x/source3/registry/reg_backend_printing.c

    r414 r773  
    279279{
    280280        int i, num_keys, snum;
    281         char *printername;
     281        char *printername_in;
    282282        NT_PRINTER_INFO_LEVEL_2 info2;
    283283        NT_PRINTER_INFO_LEVEL printer;
     
    290290        become_root();
    291291        for ( i=0; i<num_keys; i++ ) {
    292                 printername = regsubkey_ctr_specific_key( subkeys, i );
    293                 snum = find_service( printername );
     292                fstring printername;
     293                printername_in = regsubkey_ctr_specific_key( subkeys, i );
     294                snum = find_service(printername_in, printername);
    294295               
    295296                /* just verify a valied snum for now */
  • branches/samba-3.5.x/source3/rpc_server/srv_srvsvc_nt.c

    r454 r773  
    14191419        DEBUG(5,("_srvsvc_NetShareGetInfo: %d\n", __LINE__));
    14201420
    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);
    14241426        if (snum < 0) {
    14251427                return WERR_INVALID_NAME;
     
    15351537{
    15361538        char *command = NULL;
    1537         char *share_name = NULL;
     1539        fstring share_name;
    15381540        char *comment = NULL;
    15391541        const char *pathname = NULL;
     
    15511553        DEBUG(5,("_srvsvc_NetShareSetInfo: %d\n", __LINE__));
    15521554
    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;
    15561557        }
    15571558
     
    15601561        }
    15611562
    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") )
    15651566        {
    15661567                DEBUG(5,("_srvsvc_NetShareSetInfo: share %s cannot be "
    15671568                        "modified by a remote user.\n",
    1568                         share_name ));
     1569                        r->in.share_name ));
    15691570                return WERR_ACCESS_DENIED;
    15701571        }
    15711572
    1572         snum = find_service(share_name);
     1573        snum = find_service(r->in.share_name, share_name);
    15731574
    15741575        /* Does this share exist ? */
     
    17651766{
    17661767        char *command = NULL;
    1767         char *share_name = NULL;
     1768        char *share_name_in = NULL;
     1769        fstring share_name;
    17681770        char *comment = NULL;
    17691771        char *pathname = NULL;
     
    18021804                return WERR_ACCESS_DENIED;
    18031805        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);
    18051807                comment = talloc_strdup(ctx, r->in.info->info2->comment);
    18061808                pathname = talloc_strdup(ctx, r->in.info->info2->path);
     
    18131815                return WERR_ACCESS_DENIED;
    18141816        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);
    18161818                comment = talloc_strdup(ctx, r->in.info->info502->comment);
    18171819                pathname = talloc_strdup(ctx, r->in.info->info502->path);
     
    18411843        /* check for invalid share names */
    18421844
    1843         if (!share_name || !validate_net_name(share_name,
     1845        if (!share_name_in || !validate_net_name(share_name_in,
    18441846                                INVALID_SHARENAME_CHARS,
    1845                                 strlen(share_name))) {
     1847                                strlen(share_name_in))) {
    18461848                DEBUG(5,("_srvsvc_NetShareAdd: Bad sharename \"%s\"\n",
    1847                                         share_name ? share_name : ""));
     1849                                        share_name_in ? share_name_in : ""));
    18481850                return WERR_INVALID_NAME;
    18491851        }
    18501852
    1851         if (strequal(share_name,"IPC$") || strequal(share_name,"global")
     1853        if (strequal(share_name_in,"IPC$") || strequal(share_name_in,"global")
    18521854                        || (lp_enable_asu_support() &&
    1853                                         strequal(share_name,"ADMIN$"))) {
     1855                                        strequal(share_name_in,"ADMIN$"))) {
    18541856                return WERR_ACCESS_DENIED;
    18551857        }
    18561858
    1857         snum = find_service(share_name);
     1859        snum = find_service(share_name_in, share_name);
    18581860
    18591861        /* Share already exists. */
     
    18731875
    18741876        /* Ensure share name, pathname and comment don't contain '"' characters. */
    1875         string_replace(share_name, '"', ' ');
     1877        string_replace(share_name_in, '"', ' ');
    18761878        string_replace(path, '"', ' ');
    18771879        if (comment) {
     
    18831885                        lp_add_share_cmd(),
    18841886                        get_dyn_CONFIGFILE(),
    1885                         share_name,
     1887                        share_name_in,
    18861888                        path,
    18871889                        comment ? comment : "",
     
    19201922
    19211923        if (psd) {
     1924                /* Note we use share_name here, not share_name_in as
     1925                   we need a canonicalized name for setting security. */
    19221926                if (!set_share_security(share_name, psd)) {
    19231927                        DEBUG(0,("_srvsvc_NetShareAdd: Failed to add security info to share %s.\n",
     
    19471951{
    19481952        char *command = NULL;
    1949         char *share_name = NULL;
     1953        fstring share_name;
    19501954        int ret;
    19511955        int snum;
     
    19571961        DEBUG(5,("_srvsvc_NetShareDel: %d\n", __LINE__));
    19581962
    1959         share_name = talloc_strdup(p->mem_ctx, r->in.share_name);
    1960         if (!share_name) {
     1963        if (!r->in.share_name) {
    19611964                return WERR_NET_NAME_NOT_FOUND;
    19621965        }
    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") )
    19661969        {
    19671970                return WERR_ACCESS_DENIED;
    19681971        }
    19691972
    1970         if (!(params = get_share_params(p->mem_ctx, share_name))) {
     1973        if (!(params = get_share_params(p->mem_ctx, r->in.share_name))) {
    19711974                return WERR_NO_SUCH_SHARE;
    19721975        }
    19731976
    1974         snum = find_service(share_name);
     1977        snum = find_service(r->in.share_name, share_name);
    19751978
    19761979        /* No change to printer shares. */
     
    21152118        ZERO_STRUCT(st);
    21162119
    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);
    21202125        if (snum == -1) {
    21212126                DEBUG(10, ("Could not find service %s\n", servicename));
     
    22452250        ZERO_STRUCT(st);
    22462251
    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);
    22502257        if (snum == -1) {
    22512258                DEBUG(10, ("Could not find service %s\n", servicename));
  • branches/samba-3.5.x/source3/script/tests/test_smbclient_s3.sh

    r414 r773  
    1414USERNAME="$3"
    1515PASSWORD="$4"
    16 SMBCLIENT="$VALGRIND ${SMBCLIENT:-$BINDIR/smbclient} $CONFIGURATION"
     16SMBCLIENT="$VALGRIND ${SMBCLIENT:-y:\smbclient.exe} $CONFIGURATION"
    1717shift 4
    1818ADDARGS="$*"
  • branches/samba-3.5.x/source3/smbd/dosmode.c

    r599 r773  
    374374                return False;
    375375        }
     376        DEBUG(10,("set_ea_dos_attributes: %d",sizeof(dosattrib)));
    376377
    377378        ZERO_STRUCT(dosattrib);
  • branches/samba-3.5.x/source3/smbd/lanman.c

    r414 r773  
    850850        char *p = skip_string(param,tpscnt,str2);
    851851        char *QueueName = p;
     852        fstring share_name;
    852853        unsigned int uLevel;
    853854        int count=0;
     
    900901        }
    901902
    902         snum = find_service(QueueName);
     903        snum = find_service(QueueName, share_name);
    903904        if ( !(lp_snum_ok(snum) && lp_print_ok(snum)) )
    904905                return False;
     
    19301931        int uLevel = get_safe_SVAL(param,tpscnt,p,0,-1);
    19311932        int snum;
     1933        fstring share_name;
    19321934
    19331935        if (!str1 || !str2 || !netname || !p) {
     
    19351937        }
    19361938
    1937         snum = find_service(netname);
     1939        snum = find_service(netname, share_name);
    19381940        if (snum < 0) {
    19391941                return False;
     
    21272129        }
    21282130        pull_ascii_fstring(sharename,data);
    2129         snum = find_service(sharename);
     2131        snum = find_service(sharename, sharename);
    21302132        if (snum >= 0) { /* already exists */
    21312133                res = ERRfilexists;
     
    41854187        print_queue_struct *queue=NULL;
    41864188        print_status_struct status;
     4189        fstring share_name;
    41874190
    41884191        if (!str1 || !str2 || !p) {
     
    42144217        }
    42154218
    4216         snum = find_service(name);
     4219        snum = find_service(name, share_name);
    42174220        if ( !(lp_snum_ok(snum) && lp_print_ok(snum)) ) {
    42184221                return False;
     
    43354338        char *p = skip_string(param,tpscnt,str2);
    43364339        char* PrinterName = p;
     4340        fstring share_name;
    43374341        int uLevel;
    43384342        struct pack_desc desc;
     
    43624366        }
    43634367
    4364         snum = find_service(PrinterName);
     4368        snum = find_service(PrinterName, share_name);
    43654369        if ( !(lp_snum_ok(snum) && lp_print_ok(snum)) ) {
    43664370                *rdata_len = 0;
  • branches/samba-3.5.x/source3/smbd/msdfs.c

    r732 r773  
    823823        if(snum < 0) {
    824824                fstring service_name;
    825                 fstrcpy(service_name, jucn->service_name);
    826                 if ((snum = find_service(service_name)) < 0) {
     825                if ((snum = find_service(jucn->service_name, service_name)) < 0) {
    827826                        return NT_STATUS_NOT_FOUND;
    828827                }
  • branches/samba-3.5.x/source3/smbd/posix_acls.c

    r739 r773  
    13601360                if (pace->type == SMB_ACL_USER_OBJ) {
    13611361
    1362                         if (setting_acl && !is_default_acl) {
     1362                        if (setting_acl) {
     1363                                /*
     1364                                 * Ensure we have default parameters for the
     1365                                 * user (owner) even on default ACLs.
     1366                                 */
    13631367                                apply_default_perms(params, is_directory, pace, S_IRUSR);
    13641368                        }
     
    14401444                        }
    14411445
    1442                         if (!is_default_acl) {
    1443                                 apply_default_perms(params, is_directory, pace, S_IRUSR);
    1444                         }
     1446                        /*
     1447                         * Ensure we have default parameters for the
     1448                         * user (owner) even on default ACLs.
     1449                         */
     1450                        apply_default_perms(params, is_directory, pace, S_IRUSR);
    14451451                } else {
    14461452                        pace->perms = unix_perms_to_acl_perms(pst->st_ex_mode, S_IRUSR, S_IWUSR, S_IXUSR);
  • branches/samba-3.5.x/source3/smbd/service.c

    r736 r773  
    306306 * Find a service entry.
    307307 *
    308  * @param service is modified (to canonical form??)
     308 * @param service_in is modified (to canonical form??)
     309 * and returned in return parameter service.
    309310 **/
    310311
    311 int find_service(fstring service)
     312int find_service(const char *service_in, fstring service)
    312313{
    313314        int iService;
    314315        struct smbd_server_connection *sconn = smbd_server_conn;
    315316
     317        if (!service_in) {
     318                return -1;
     319        }
     320
     321        fstrcpy(service, service_in);
    316322        all_string_sub(service,"\\","/",0);
    317323
     
    400406                        }
    401407
    402                         iService = find_service(defservice);
     408                        iService = find_service(defservice, service);
    403409                        if (iService >= 0) {
    404410                                all_string_sub(service, "_","/",0);
     
    11831189                                        current_user_info.smb_name);
    11841190                                map_username(sconn, unix_username);
    1185                                 snum = find_service(unix_username);
     1191                                snum = find_service(unix_username, unix_username);
    11861192                        }
    11871193                        if (snum != -1) {
     
    12111217        strlower_m(service);
    12121218
    1213         snum = find_service(service);
     1219        snum = find_service(service, service);
    12141220
    12151221        if (snum < 0) {
  • branches/samba-3.5.x/source3/smbd/smb2_tcon.c

    r414 r773  
    168168        strlower_m(service);
    169169
    170         snum = find_service(service);
     170        snum = find_service(service, service);
    171171        if (snum < 0) {
    172172                DEBUG(3,("smbd_smb2_tree_connect: couldn't find service %s\n",
Note: See TracChangeset for help on using the changeset viewer.