components/pigz/patches/203_dir_traversal.patch
changeset 7750 dd29141c63d5
parent 7749 a43ac3f5a0f5
child 7751 bca17dc2b15e
equal deleted inserted replaced
7749:a43ac3f5a0f5 7750:dd29141c63d5
     1 Fix bug in directory traversal.
       
     2 
       
     3 This off-by-one error resulted in useless reexamination of the
       
     4 same files by descending twice into each directory.
       
     5 
       
     6 See:
       
     7 
       
     8 https://github.com/madler/pigz/commit/06b5347948ff2d675ebbeb943941e2b7610082f3
       
     9 
       
    10 This fix has already been integrated upstream.
       
    11 
       
    12 --- pigz-2.3.3/pigz.c.orig	2016-10-03 08:06:26.655873581 +0000
       
    13 +++ pigz-2.3.3/pigz.c	2016-10-03 08:07:23.222592284 +0000
       
    14 @@ -4268,7 +4268,7 @@
       
    15  
       
    16              /* run process() for each entry in the directory */
       
    17              base = len && g.inf[len - 1] != (unsigned char)'/' ?
       
    18 -                   vstrcpy(&g.inf, &g.inz, len, "/") : len;
       
    19 +                   vstrcpy(&g.inf, &g.inz, len, "/") - 1 : len;
       
    20              for (off = 0; roll[off]; off += strlen(roll + off) + 1) {
       
    21                  vstrcpy(&g.inf, &g.inz, base, roll + off);
       
    22                  process(g.inf);