r13915: Fixed a very interesting class of realloc() bugs found by Coverity.
[samba.git] / source / libsmb / asn1.c
index 09998407941fa242857a02efbb060f8bd2441868..072fd30283063949a0b42ae53b64c5b484090c67 100644 (file)
@@ -31,14 +31,11 @@ BOOL asn1_write(ASN1_DATA *data, const void *p, int len)
 {
        if (data->has_error) return False;
        if (data->length < data->ofs+len) {
-               uint8 *newp;
-               newp = SMB_REALLOC(data->data, data->ofs+len);
-               if (!newp) {
-                       SAFE_FREE(data->data);
+               data->data = SMB_REALLOC(data->data, data->ofs+len);
+               if (!data->data) {
                        data->has_error = True;
                        return False;
                }
-               data->data = newp;
                data->length = data->ofs+len;
        }
        memcpy(data->data + data->ofs, p, len);