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 <g...@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 <g...@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