[SCM] Samba Shared Repository - branch master updated - release-4-0-0alpha7-605-g1524abd

Günther Deschner gd at samba.org
Fri Mar 20 09:42:09 GMT 2009


The branch, master has been updated
       via  1524abd8bf12d82e1fb0063585fc9a465fc7bf9c (commit)
       via  2c186be0df33664eea980c17720be41f25f91288 (commit)
      from  842edcd2b08763a35dbdea3518fcc039aa70aad4 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1524abd8bf12d82e1fb0063585fc9a465fc7bf9c
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 19 16:42:54 2009 +0100

    s3-krb5: Fix Coverity #722 (RESOURCE_LEAK).
    
    Guenther

commit 2c186be0df33664eea980c17720be41f25f91288
Author: Günther Deschner <gd at samba.org>
Date:   Thu Mar 19 16:18:29 2009 +0100

    s3-net: Fix Coverity #886 (FORWARD_NULL).
    
    Guenther

-----------------------------------------------------------------------

Summary of changes:
 source3/libsmb/clikrb5.c        |   30 ++++++++++++++++++------------
 source3/utils/net_rpc_printer.c |    2 +-
 2 files changed, 19 insertions(+), 13 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/libsmb/clikrb5.c b/source3/libsmb/clikrb5.c
index 168ca63..4ab3137 100644
--- a/source3/libsmb/clikrb5.c
+++ b/source3/libsmb/clikrb5.c
@@ -878,24 +878,30 @@ failed:
 
  bool get_krb5_smb_session_key(krb5_context context, krb5_auth_context auth_context, DATA_BLOB *session_key, bool remote)
  {
-	krb5_keyblock *skey;
-	krb5_error_code err;
-	bool ret = False;
+	krb5_keyblock *skey = NULL;
+	krb5_error_code err = 0;
+	bool ret = false;
 
-	if (remote)
+	if (remote) {
 		err = krb5_auth_con_getremotesubkey(context, auth_context, &skey);
-	else
+	} else {
 		err = krb5_auth_con_getlocalsubkey(context, auth_context, &skey);
-	if (err == 0 && skey != NULL) {
-		DEBUG(10, ("Got KRB5 session key of length %d\n",  (int)KRB5_KEY_LENGTH(skey)));
-		*session_key = data_blob(KRB5_KEY_DATA(skey), KRB5_KEY_LENGTH(skey));
-		dump_data_pw("KRB5 Session Key:\n", session_key->data, session_key->length);
+	}
 
-		ret = True;
+	if (err || skey == NULL) {
+		DEBUG(10, ("KRB5 error getting session key %d\n", err));
+		goto done;
+	}
 
+	DEBUG(10, ("Got KRB5 session key of length %d\n",  (int)KRB5_KEY_LENGTH(skey)));
+	*session_key = data_blob(KRB5_KEY_DATA(skey), KRB5_KEY_LENGTH(skey));
+	dump_data_pw("KRB5 Session Key:\n", session_key->data, session_key->length);
+
+	ret = true;
+
+ done:
+	if (skey) {
 		krb5_free_keyblock(context, skey);
-	} else {
-		DEBUG(10, ("KRB5 error getting session key %d\n", err));
 	}
 
 	return ret;
diff --git a/source3/utils/net_rpc_printer.c b/source3/utils/net_rpc_printer.c
index b25c897..81dfbaa 100644
--- a/source3/utils/net_rpc_printer.c
+++ b/source3/utils/net_rpc_printer.c
@@ -1902,7 +1902,7 @@ NTSTATUS rpc_printer_migrate_drivers_internals(struct net_context *c,
 
 		}
 
-		if (strlen(drivername) == 0) {
+		if (!drivername || strlen(drivername) == 0) {
 			DEBUGADD(1,("Did not get driver for printer %s\n",
 				    printername));
 			goto done;


-- 
Samba Shared Repository


More information about the samba-cvs mailing list