]> git.ipfire.org Git - thirdparty/tar.git/commitdiff
Fix unlikely overflow in transform.c
authorPaul Eggert <eggert@cs.ucla.edu>
Tue, 30 Jul 2024 15:32:55 +0000 (08:32 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 4 Aug 2024 08:41:43 +0000 (01:41 -0700)
* src/transform.c (_single_transform_name_to_obstack):
Use xinmalloc to check for integer overflow.

src/transform.c

index 6cb13480071a20ad30454730fd5ea3efbeb80184..33a0f3cbb3003a89228ee2affbafb8c277142702 100644 (file)
@@ -458,7 +458,6 @@ run_case_conv (enum case_ctl_type case_ctl, char *ptr, size_t size)
 static void
 _single_transform_name_to_obstack (struct transform *tf, char *input)
 {
-  regmatch_t *rmp;
   int rc;
   size_t nmatches = 0;
   enum case_ctl_type case_ctl = ctl_stop,  /* Current case conversion op */
@@ -472,7 +471,7 @@ _single_transform_name_to_obstack (struct transform *tf, char *input)
                               save_ctl = ctl_stop;            \
                            }
 
-  rmp = xmalloc ((tf->regex.re_nsub + 1) * sizeof (*rmp));
+  regmatch_t *rmp = xinmalloc (tf->regex.re_nsub + 1, sizeof *rmp);
 
   while (*input)
     {