]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fix unchecked malloc result in read_reparse_data
authorTim Kientzle <kientzle@acm.org>
Sat, 16 May 2026 17:02:30 +0000 (10:02 -0700)
committerTim Kientzle <kientzle@acm.org>
Sat, 16 May 2026 17:02:30 +0000 (10:02 -0700)
If malloc fails, indata would be NULL and passed directly to
DeviceIoControl, causing undefined behavior.

libarchive/archive_read_disk_windows.c

index ac01179628fdf67f049c78c0829d8a0fdc0549fe..b0b8accb9de5f30de9927bda0f902eecdf092f17 100644 (file)
@@ -358,6 +358,8 @@ la_linkname_from_handle(HANDLE h, wchar_t **linkname, int *linktype)
        }
 
        indata = malloc(MAXIMUM_REPARSE_DATA_BUFFER_SIZE);
+       if (indata == NULL)
+               return (-1);
        ret = DeviceIoControl(h, FSCTL_GET_REPARSE_POINT, NULL, 0, indata,
            1024, &inbytes, NULL);
        if (ret == 0) {