Fix Coverity ID 462
[jra/samba/.git] / source / rpc_parse / parse_buffer.c
index 9a68e547a048ac1db0a6d03aae36a351cb2dbcca..63a73c4b7c7df347ef8f6b9e1c82ba7bab22d2a0 100644 (file)
@@ -37,7 +37,7 @@ void rpcbuf_init(RPC_BUFFER *buffer, uint32 size, TALLOC_CTX *ctx)
        if (prs_init(&buffer->prs, size, ctx, MARSHALL))
                buffer->struct_start = prs_offset(&buffer->prs);
        else
-               buffer->struct_start = NULL;
+               buffer->struct_start = 0;
 }
 
 /*******************************************************************
@@ -374,8 +374,10 @@ bool smb_io_relarraystr(const char *desc, RPC_BUFFER *buffer, int depth, uint16
                        return False;
        
                do {
-                       if (!smb_io_unistr(desc, &chaine, ps, depth))
+                       if (!smb_io_unistr(desc, &chaine, ps, depth)) {
+                               SAFE_FREE(chaine2);
                                return False;
+                       }
                        
                        l_chaine=str_len_uni(&chaine);
                        
@@ -402,10 +404,10 @@ bool smb_io_relarraystr(const char *desc, RPC_BUFFER *buffer, int depth, uint16
                {
                        chaine2[l_chaine2] = '\0';
                        *string=(uint16 *)TALLOC_MEMDUP(prs_get_mem_context(ps),chaine2,realloc_size);
+                       SAFE_FREE(chaine2);
                        if (!*string) {
                                return False;
                        }
-                       SAFE_FREE(chaine2);
                }
 
                if(!prs_set_offset(ps, old_offset))