r16175: sync up with SAMBA_3_0 to release (r16156)
authorGerald Carter <jerry@samba.org>
Tue, 13 Jun 2006 01:50:55 +0000 (01:50 +0000)
committerGerald Carter <jerry@samba.org>
Tue, 13 Jun 2006 01:50:55 +0000 (01:50 +0000)
WHATSNEW.txt
source/auth/auth_util.c
source/lib/ldap_escape.c
source/libsmb/clispnego.c
source/nsswitch/winbindd.c
source/passdb/pdb_smbpasswd.c
source/script/installbin.sh.in
source/script/uninstallbin.sh.in

index 2792984260a76f55c24ae55b4885ca59e2ef1e6a..be592643c327550333256afad881a9515fd99651 100644 (file)
@@ -14,6 +14,10 @@ thank Thomas Bork <tombork@web.de> for his numerous reports.
 We believe that RC2 is in much better shape in a large part due 
 to his efforts.
 
+We would also like to thank the developers of Klokwork for their
+anaylsis of the Samba source tree.  This release candidates includes 
+multiple fixes based on reports from the klockwork code anaylzer.
+
 Common issues addressed in 3.0.23rc2 include:
 
    o Winbindd & Samba PDC integration issues.
@@ -56,6 +60,10 @@ o   Jeremy Allison <jra@samba.org>
     * Remove extra add-byte in the trans2 UNIX_BASIC infolevel.
 
 
+o   Alexander Bokovoy <ab@samba.org>
+    * Fix absolute symlinks in the installbin.sh script.
+
+
 o   Gerald (Jerry) Carter <jerry@samba.org>
     * Only call the printer publishing calls if 'security = ads'.
 
@@ -79,6 +87,7 @@ o   Guenther Deschner <gd@samba.org>
     * Fix a eDir related memory leak.
     * Don't try to add the sn attribute twice to an LDAP 
       inetOrgPerson + samSamAccount entry.
+    * Fix winbind function table typo.
 
 
 o   Aleksey Fedoseev <fedoseev@ru.ibm.com>
@@ -112,6 +121,8 @@ o   Volker Lendecke <vl@samba.org>
       'add machine script'.
     * Correct parsing error in parse_net.c for user's with no group
       membership.
+    * Fix off by one error in client SPNEGO code and other klokwork
+      bug fixes.
 
 
 o   Jason Mader <jason@ncac.gwu.edu>
index f4d32ebdc0c07d307daa966e6e9deff25cf19ec3..43ae5c1af65b42595d257cd12ef3c1ae4b9a911e 100644 (file)
@@ -1243,10 +1243,9 @@ NTSTATUS make_server_info_pw(auth_serversupplied_info **server_info,
        }
 
        result = make_server_info(NULL);
-
-       if (!NT_STATUS_IS_OK(status)) {
+       if (result == NULL) {
                TALLOC_FREE(sampass);
-               return status;
+               return NT_STATUS_NO_MEMORY;
        }
 
        result->sam_account = sampass;
@@ -1279,8 +1278,7 @@ NTSTATUS make_server_info_pw(auth_serversupplied_info **server_info,
  Make (and fill) a user_info struct for a guest login.
  This *must* succeed for smbd to start. If there is no mapping entry for
  the guest gid, then create one.
-**********************
-*****************************************************/
+***************************************************************************/
 
 static NTSTATUS make_new_server_info_guest(auth_serversupplied_info **server_info)
 {
index 3feb0e0c44ef202b5373de931978eede2046349f..fcb787e9e8556dea396a8dcffe2a2de717cd6ef5 100644 (file)
@@ -40,6 +40,10 @@ char *escape_ldap_string_alloc(const char *s)
        const char *sub;
        int i = 0;
        char *p = output;
+
+       if (output == NULL) {
+               return NULL;
+       }
        
        while (*s)
        {
index 13bf1a866c9af0bfa19a980502dee49ff5ca4194..e87e9f0c7c9c2e3de1952a89694ec512cbf7a188 100644 (file)
@@ -140,7 +140,7 @@ BOOL spnego_parse_negTokenInit(DATA_BLOB blob,
 
        asn1_start_tag(&data,ASN1_CONTEXT(0));
        asn1_start_tag(&data,ASN1_SEQUENCE(0));
-       for (i=0; asn1_tag_remaining(&data) > 0 && i < ASN1_MAX_OIDS; i++) {
+       for (i=0; asn1_tag_remaining(&data) > 0 && i < ASN1_MAX_OIDS-1; i++) {
                char *oid_str = NULL;
                asn1_read_OID(&data,&oid_str);
                OIDs[i] = oid_str;
@@ -229,7 +229,7 @@ BOOL parse_negTokenTarg(DATA_BLOB blob, char *OIDs[ASN1_MAX_OIDS], DATA_BLOB *se
 
        asn1_start_tag(&data, ASN1_CONTEXT(0));
        asn1_start_tag(&data, ASN1_SEQUENCE(0));
-       for (i=0; asn1_tag_remaining(&data) > 0 && i < ASN1_MAX_OIDS; i++) {
+       for (i=0; asn1_tag_remaining(&data) > 0 && i < ASN1_MAX_OIDS-1; i++) {
                char *oid_str = NULL;
                asn1_read_OID(&data,&oid_str);
                OIDs[i] = oid_str;
index cc904c3209185b0ecaec84ceaa6ac9d7dc494b1b..046ea40f59a964995a78a75cbf014e8b984c6389 100644 (file)
@@ -235,7 +235,7 @@ static struct winbindd_dispatch_table {
        { WINBINDD_UID_TO_SID, winbindd_uid_to_sid, "UID_TO_SID" },
        { WINBINDD_GID_TO_SID, winbindd_gid_to_sid, "GID_TO_SID" },
        { WINBINDD_ALLOCATE_UID, winbindd_allocate_uid, "ALLOCATE_UID" },
-       { WINBINDD_ALLOCATE_GID, winbindd_allocate_uid, "ALLOCATE_GID" },
+       { WINBINDD_ALLOCATE_GID, winbindd_allocate_gid, "ALLOCATE_GID" },
 
        /* Miscellaneous */
 
index b976595008a5ef001b8c8f44b8f35e1ca84840b5..a8a42196d48ac331a71e8a7be1f003faa2a5db04 100644 (file)
@@ -1157,7 +1157,7 @@ static BOOL build_smb_pass (struct smb_passwd *smb_pw, const struct samu *sampas
                if (rid == DOMAIN_USER_RID_GUEST) {
                        struct passwd *passwd = getpwnam_alloc(NULL, lp_guestaccount());
                        if (!passwd) {
-                               DEBUG(0, ("Could not find gest account via getpwnam()! (%s)\n", lp_guestaccount()));
+                               DEBUG(0, ("Could not find guest account via getpwnam()! (%s)\n", lp_guestaccount()));
                                return False;
                        }
                        smb_pw->smb_userid=passwd->pw_uid;
index 6c578b3971afc8b69a5133d04f11ee41bb3cbdda..59a6c31ca88fd4435a8ec963b58d5442b0212e2e 100755 (executable)
@@ -4,6 +4,7 @@ INSTALLPERMS=$1
 DESTDIR=$2
 prefix=`echo $3 | sed 's/\/\//\//g'`
 BINDIR=`echo $4 | sed 's/\/\//\//g'`
+SBINDIR=@sbindir@
 shift
 shift
 shift
index d8a48558230322ceff86d9cd0706f7de95829528..e1bbf6ecb135d650882ab525c4448e5b1f88080f 100755 (executable)
@@ -5,6 +5,7 @@ INSTALLPERMS=$1
 DESTDIR=$2
 prefix=`echo $3 | sed 's/\/\//\//g'`
 BINDIR=`echo $4 | sed 's/\/\//\//g'`
+SBINDIR=@sbindir@
 shift
 shift
 shift