Avoid null pointer dereferences when no username/password specified.
authorMichael Brown <mcb30@etherboot.org>
Thu, 21 Dec 2006 18:38:24 +0000 (18:38 +0000)
committerMichael Brown <mcb30@etherboot.org>
Thu, 21 Dec 2006 18:38:24 +0000 (18:38 +0000)
src/net/tcp/iscsi.c

index 4897f1e..d38c20e 100644 (file)
@@ -403,7 +403,8 @@ static int iscsi_build_login_request_strings ( struct iscsi_session *iscsi,
                used += ssnprintf ( data + used, len - used, "CHAP_A=5%c", 0 );
        }
        
-       if ( iscsi->status & ISCSI_STATUS_STRINGS_CHAP_RESPONSE ) {
+       if ( ( iscsi->status & ISCSI_STATUS_STRINGS_CHAP_RESPONSE ) &&
+            iscsi->username ) {
                used += ssnprintf ( data + used, len - used,
                                    "CHAP_N=%s%cCHAP_R=0x",
                                    iscsi->username, 0 );
@@ -572,8 +573,10 @@ static void iscsi_handle_chap_i_value ( struct iscsi_session *iscsi,
         * challenge.
         */
        chap_set_identifier ( &iscsi->chap, identifier );
-       chap_update ( &iscsi->chap, iscsi->password,
-                     strlen ( iscsi->password ) );
+       if ( iscsi->password ) {
+               chap_update ( &iscsi->chap, iscsi->password,
+                             strlen ( iscsi->password ) );
+       }
 }
 
 /**