Ignore:
Timestamp:
Oct 8, 2009, 7:51:22 AM (16 years ago)
Author:
Herwig Bauernfeind
Message:

Update 3.0 to 3.0.37 (unsupported security update)

Location:
branches/samba-3.0/source
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • branches/samba-3.0/source/VERSION

    r312 r336  
    2626SAMBA_VERSION_MAJOR=3
    2727SAMBA_VERSION_MINOR=0
    28 SAMBA_VERSION_RELEASE=36
     28SAMBA_VERSION_RELEASE=37
    2929
    3030########################################################
     
    9696#  ->  "CVS 3.0.0rc2-VendorVersion"                    #
    9797########################################################
    98 SAMBA_VERSION_VENDOR_SUFFIX="eCS 1.0.2"
     98SAMBA_VERSION_VENDOR_SUFFIX=
    9999SAMBA_VERSION_VENDOR_PATCH=
  • branches/samba-3.0/source/client/mount.cifs.c

    r312 r336  
    200200        FILE * fs;
    201201        int i, length;
     202
     203        i = access(file_name, R_OK);
     204        if (i)
     205                return i;
     206
    202207        fs = fopen(file_name,"r");
    203208        if(fs == NULL)
     
    322327
    323328        if(filename != NULL) {
     329                rc = access(filename, R_OK);
     330                if (rc) {
     331                        fprintf(stderr, "mount.cifs failed: access check of %s failed: %s\n",
     332                                        filename, strerror(errno));
     333                        exit(EX_SYSERR);
     334                }
    324335                file_descript = open(filename, O_RDONLY);
    325336                if(file_descript < 0) {
     
    380391                return 1;
    381392        data = *optionsp;
    382 
    383         if(verboseflag)
    384                 printf("parsing options: %s\n", data);
    385393
    386394        /* BB fixme check for separator override BB */
     
    472480                        if (!value || !*value) {
    473481                                if(got_password) {
    474                                         printf("\npassword specified twice, ignoring second\n");
     482                                        fprintf(stderr, "\npassword specified twice, ignoring second\n");
    475483                                } else
    476484                                        got_password = 1;
    477                         } else if (strnlen(value, 17) < 17) {
    478                                 if(got_password)
    479                                         printf("\nmount.cifs warning - password specified twice\n");
    480                                 got_password = 1;
     485                        } else if (strnlen(value, MOUNT_PASSWD_SIZE) < MOUNT_PASSWD_SIZE) {
     486                                if (got_password) {
     487                                        fprintf(stderr, "\nmount.cifs warning - password specified twice\n");
     488                                } else {
     489                                        mountpassword = strndup(value, MOUNT_PASSWD_SIZE);
     490                                        if (!mountpassword) {
     491                                                fprintf(stderr, "mount.cifs error: %s", strerror(ENOMEM));
     492                                                SAFE_FREE(out);
     493                                                return 1;
     494                                        }
     495                                        got_password = 1;
     496                                }
    481497                        } else {
    482                                 printf("password too long\n");
     498                                fprintf(stderr, "password too long\n");
    483499                                SAFE_FREE(out);
    484500                                return 1;
    485501                        }
     502                        goto nocopy;
    486503                } else if (strncmp(data, "sec", 3) == 0) {
    487504                        if (value) {
     
    13711388                }
    13721389        }
    1373         if(mountpassword) {
    1374                 /* Commas have to be doubled, or else they will
    1375                 look like the parameter separator */
    1376 /*              if(sep is not set)*/
    1377                 if(retry == 0)
    1378                         check_for_comma(&mountpassword);
    1379                 strlcat(options,",pass=",options_size);
    1380                 strlcat(options,mountpassword,options_size);
    1381         }
    13821390
    13831391        strlcat(options,",ver=",options_size);
     
    13921400                strlcat(options,prefixpath,options_size); /* no need to cat the / */
    13931401        }
    1394         if(verboseflag)
    1395                 printf("\nmount.cifs kernel mount options %s \n",options);
    13961402
    13971403        /* convert all '\\' to '/' in share portion so that /proc/mounts looks pretty */
     
    14241430                }
    14251431        }
     1432
     1433        if(verboseflag)
     1434                fprintf(stderr, "\nmount.cifs kernel mount options: %s", options);
     1435
     1436        if (mountpassword) {
     1437                /*
     1438                 * Commas have to be doubled, or else they will
     1439                 * look like the parameter separator
     1440                 */
     1441                if(retry == 0)
     1442                        check_for_comma(&mountpassword);
     1443                strlcat(options,",pass=",options_size);
     1444                strlcat(options,mountpassword,options_size);
     1445                if (verboseflag)
     1446                        fprintf(stderr, ",pass=********");
     1447        }
     1448
     1449        if (verboseflag)
     1450                fprintf(stderr, "\n");
    14261451
    14271452        if (!fakemnt && mount(dev_name, mountpoint, "cifs", flags, options)) {
  • branches/samba-3.0/source/include/smb.h

    r165 r336  
    760760        struct timeval request_time; /* When was this first issued? */
    761761        struct timeval end_time; /* When does this time out? */
     762        bool processed;
    762763        DATA_BLOB buf;
    763764        DATA_BLOB private_data;
  • branches/samba-3.0/source/include/version.h

    r312 r336  
    22#define SAMBA_VERSION_MAJOR 3
    33#define SAMBA_VERSION_MINOR 0
    4 #define SAMBA_VERSION_RELEASE 36
    5 #define SAMBA_VERSION_OFFICIAL_STRING "3.0.36"
    6 #define SAMBA_VERSION_VENDOR_SUFFIX "eCS 1.0.2"
     4#define SAMBA_VERSION_RELEASE 37
     5#define SAMBA_VERSION_OFFICIAL_STRING "3.0.37"
     6#define SAMBA_VERSION_VENDOR_SUFFIX "eCS 1.0.x-TEST"
     7#define SAMBA_VERSION_VENDOR_PATCH 20091006
    78#define SAMBA_VERSION_STRING samba_version_string()
  • branches/samba-3.0/source/param/loadparm.c

    r312 r336  
    26992699        pstring newHomedir;
    27002700
     2701        if (pszHomename == NULL || user == NULL || pszHomedir == NULL ||
     2702                        pszHomedir[0] == '\0') {
     2703                return False;
     2704        }
     2705
    27012706        i = add_a_service(ServicePtrs[iDefaultService], pszHomename);
    27022707
     
    41794184                        continue;
    41804185
    4181                 if (home && homes >= 0)
     4186                if (home && home[0] && homes >= 0)
    41824187                        lp_add_home(p, homes, p, home);
    41834188        }
  • branches/samba-3.0/source/passdb/pdb_tdb.c

    r1 r336  
    823823       
    824824        SMB_ASSERT( ref_count == 0 );
    825        
     825DEBUG(0, ("tdbsam_open file: %s size: %d \n", name, get_file_size( name ) ));   //remove me
    826826        /* Try to open tdb passwd.  Create a new one if necessary */
    827827       
     
    883883
    884884        SMB_ASSERT(ref_count >= 0 );
    885        
     885/* remove later */
     886        DEBUG(0, ("tdbsam_close file: %s size: %d \n", tdbsam_filename, get_file_size( tdbsam_filename ) ));    //remove me
     887/* -- remove later */
    886888        if ( ref_count == 0 ) {
    887889                tdb_close( tdbsam );
  • branches/samba-3.0/source/smbd/process.c

    r165 r336  
    9494        msg->request_time = request_time;
    9595        msg->end_time = end_time;
     96        msg->processed = false;
    9697
    9798        if (private_data) {
     
    163164
    164165/****************************************************************************
    165  Return true if this mid is on the deferred queue.
     166 Return true if this mid is on the deferred queue and was not yet processed.
    166167****************************************************************************/
    167168
     
    171172
    172173        for (pml = deferred_open_queue; pml; pml = pml->next) {
    173                 if (SVAL(pml->buf.data,smb_mid) == mid) {
     174                if (SVAL(pml->buf.data,smb_mid) == mid && !pml->processed) {
    174175                        return True;
    175176                }
     
    410411                           know this is a retry. */
    411412                        DEBUG(5,("receive_message_or_smb: returning deferred open smb message.\n"));
     413
     414                        /* Mark the message as processed so this is not
     415                         * re-processed in error. */
     416                        msg->processed = true;
    412417                        return True;
    413418                }
     
    968973
    969974                        if (!change_to_user(conn,session_tag)) {
    970                                 remove_deferred_open_smb_message(
    971                                         SVAL(inbuf, smb_mid));
    972975                                return(ERROR_NT(NT_STATUS_DOS(ERRSRV,ERRbaduid)));
    973976                        }
     
    10181021static int construct_reply(char *inbuf,char *outbuf,int size,int bufsize)
    10191022{
     1023        struct pending_message_list *pml = NULL;
    10201024        int type = CVAL(inbuf,smb_com);
    10211025        int outsize = 0;
    10221026        int msg_type = CVAL(inbuf,0);
     1027        uint16_t mid = SVAL(inbuf, smb_mid);
    10231028
    10241029        chain_size = 0;
     
    10321037
    10331038        outsize = switch_message(type,inbuf,outbuf,size,bufsize);
     1039
     1040        /* If this was a deferred message and it's still there and
     1041         * was processed, remove it. */
     1042        pml = get_open_deferred_message(mid);
     1043        if (pml && pml->processed) {
     1044                remove_deferred_open_smb_message(mid);
     1045        }
    10341046
    10351047        outsize += chain_size;
  • branches/samba-3.0/source/smbd/service.c

    r108 r336  
    228228        int iHomeService;
    229229
    230         if (!service || !homedir)
     230        if (!service || !homedir || homedir[0] == '\0')
    231231                return -1;
    232232
     
    805805                                      current_user_info.domain,
    806806                                      s, sizeof(s));
     807
     808                if (s[0] == '\0') {
     809                        DEBUG(6, ("service [%s] did not resolve to a path\n",
     810                                lp_servicename(snum)));
     811                        conn_free(conn);
     812                        *status = NT_STATUS_BAD_NETWORK_NAME;
     813                        return NULL;
     814                }
     815
    807816                set_conn_connectpath(conn,s);
    808817                DEBUG(3,("Connect path is '%s' for service [%s]\n",s,
Note: See TracChangeset for help on using the changeset viewer.