Author: jra
Date: 2006-03-29 23:03:34 +0000 (Wed, 29 Mar 2006)
New Revision: 14774

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14774

Log:
Fix null deref coverity bugs #260, #261, #262.
Jeremy.

Modified:
   branches/SAMBA_3_0/source/rpc_parse/parse_lsa.c


Changeset:
Modified: branches/SAMBA_3_0/source/rpc_parse/parse_lsa.c
===================================================================
--- branches/SAMBA_3_0/source/rpc_parse/parse_lsa.c     2006-03-29 22:59:41 UTC 
(rev 14773)
+++ branches/SAMBA_3_0/source/rpc_parse/parse_lsa.c     2006-03-29 23:03:34 UTC 
(rev 14774)
@@ -3001,6 +3001,9 @@
 
        if ( num_priv ) {
                out->rights = TALLOC_P( get_talloc_ctx(), UNISTR4_ARRAY );
+               if (!out->rights) {
+                       return NT_STATUS_NO_MEMORY;
+               }
 
                if ( !init_unistr4_array( out->rights, num_priv, privname_array 
) ) 
                        return NT_STATUS_NO_MEMORY;
@@ -3069,6 +3072,10 @@
        init_dom_sid2(&in->sid, sid);
        
        in->rights = TALLOC_P( get_talloc_ctx(), UNISTR4_ARRAY );
+       if (!in->rights) {
+               smb_panic("init_q_add_acct_rights: talloc fail\n");
+               return;
+       }
        init_unistr4_array( in->rights, count, rights );
        
        in->count = count;
@@ -3112,10 +3119,10 @@
        return True;
 }
 
-
 /*******************************************************************
  Inits an LSA_Q_REMOVE_ACCT_RIGHTS structure.
 ********************************************************************/
+
 void init_q_remove_acct_rights(LSA_Q_REMOVE_ACCT_RIGHTS *in, 
                               POLICY_HND *hnd, 
                               DOM_SID *sid,
@@ -3133,13 +3140,17 @@
        in->count = count;
 
        in->rights = TALLOC_P( get_talloc_ctx(), UNISTR4_ARRAY );
+       if (!in->rights) {
+               smb_panic("init_q_remove_acct_rights: talloc fail\n");
+               return;
+       }
        init_unistr4_array( in->rights, count, rights );
 }
 
-
 /*******************************************************************
 reads or writes a LSA_Q_REMOVE_ACCT_RIGHTS structure.
 ********************************************************************/
+
 BOOL lsa_io_q_remove_acct_rights(const char *desc, LSA_Q_REMOVE_ACCT_RIGHTS 
*in, prs_struct *ps, int depth)
 {
        prs_debug(ps, depth, desc, "lsa_io_q_remove_acct_rights");

Reply via email to