Fix mkportable for short target dir names
authorAndre Heinecke <aheinecke@gnupg.org>
Thu, 28 Mar 2019 10:20:23 +0000 (11:20 +0100)
committerAndre Heinecke <aheinecke@gnupg.org>
Thu, 28 Mar 2019 10:20:23 +0000 (11:20 +0100)
* src/mkportable.c (make_dirs): Use correct offset.

--
fname + strlen(fname) - strlen(name) could be completely
wrong if the name was larger then fname. It even read
before the allocated memory area.

GnuPG-Bug-Id: T4055
Fixes: T4055

src/mkportable.c

index c53c3e2..e0dcf72 100644 (file)
@@ -385,7 +385,7 @@ make_dirs (const char *name)
   char *fname, *p;
 
   fname = make_targetname (name);
-  p = fname + strlen (fname) - strlen (name);
+  p = fname + strlen (target_dir) + 1;
   while ((p = strchr (p, '/')))
     {
       *p = 0;