]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
lib: Add central error: exit to asn1_write()
authorVolker Lendecke <vl@samba.org>
Tue, 21 Jul 2026 10:27:42 +0000 (12:27 +0200)
committerAnoop C S <anoopcs@samba.org>
Mon, 3 Aug 2026 09:05:30 +0000 (09:05 +0000)
Signed-off-by: Volker Lendecke <vl@samba.org>
Reviewed-by: Anoop C S <anoopcs@samba.org>
lib/util/asn1.c

index 15d4a6ae0bc72488241b17252de602c2a684929b..fa90442f0b9d2ce69200da0811fd9dc7c76d2cc1 100644 (file)
@@ -85,16 +85,14 @@ bool asn1_write(struct asn1_data *data, const void *p, int len)
        if (data->has_error) return false;
 
        if ((len < 0) || (data->ofs + (size_t)len < data->ofs)) {
-               data->has_error = true;
-               return false;
+               goto error;
        }
 
        if (data->length < data->ofs+len) {
                uint8_t *newp;
                newp = talloc_realloc(data, data->data, uint8_t, data->ofs+len);
                if (!newp) {
-                       data->has_error = true;
-                       return false;
+                       goto error;
                }
                data->data = newp;
                data->length = data->ofs+len;
@@ -104,6 +102,9 @@ bool asn1_write(struct asn1_data *data, const void *p, int len)
                data->ofs += len;
        }
        return true;
+error:
+       data->has_error = true;
+       return false;
 }
 
 /* useful fn for writing a uint8_t */