]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
uudecode filter: fix memory allocation and name length calculation
authorMartin Matuska <martin.matuska@axelspringer.com>
Tue, 22 Aug 2023 13:52:27 +0000 (15:52 +0200)
committerMartin Matuska <martin.matuska@axelspringer.com>
Tue, 22 Aug 2023 15:49:24 +0000 (17:49 +0200)
libarchive/archive_read_support_filter_uu.c

index 3d01298ff10fc5ad266afdd5dfb89d4a3afee70e..125bd92b7023eb080f37aa2d1615bf8288c7a29d 100644 (file)
@@ -574,9 +574,9 @@ read_more:
                                    ((int)(b[l+1] - '0') * 8) +
                                     (int)(b[l+2] - '0'));
                                uudecode->mode_set = 1;
-                               namelen = len - l - 5;
+                               namelen = len - nl - 4 - l;
                                if (namelen > 1) {
-                                       uudecode->name = malloc(namelen);
+                                       uudecode->name = malloc(namelen + 1);
                                        strncpy(uudecode->name,
                                            (const char *)(b + l + 4),
                                            namelen);