View | Details | Raw Unified | Return to bug 105832
Collapse All | Expand All

(-)unzoo/Makefile (-3 / +1 lines)
Lines 7-13 Link Here
7
7
8
PORTNAME=	unzoo
8
PORTNAME=	unzoo
9
PORTVERSION=	4.4
9
PORTVERSION=	4.4
10
PORTREVISION=	1
10
PORTREVISION=	2
11
CATEGORIES=	archivers
11
CATEGORIES=	archivers
12
MASTER_SITES=	${MASTER_SITE_DEBIAN_POOL}
12
MASTER_SITES=	${MASTER_SITE_DEBIAN_POOL}
13
DISTNAME=	${PORTNAME}_${PORTVERSION}.orig
13
DISTNAME=	${PORTNAME}_${PORTVERSION}.orig
Lines 18-25 Link Here
18
18
19
MAINTAINER=	ehaupt@FreeBSD.org
19
MAINTAINER=	ehaupt@FreeBSD.org
20
COMMENT=	A zoo archive extractor
20
COMMENT=	A zoo archive extractor
21
22
USE_GCC=	3.2+
23
21
24
EXTRA_DEFINES=	-DSYS_IS_UNIX -DSYS_HAS_MKDIR
22
EXTRA_DEFINES=	-DSYS_IS_UNIX -DSYS_HAS_MKDIR
25
23
(-)unzoo/files/patch-unzoo.c (+48 lines)
Line 0 Link Here
1
--- unzoo.c.orig	Sat Nov 25 00:53:57 2006
2
+++ unzoo.c	Sat Nov 25 01:00:42 2006
3
@@ -2590,20 +2590,20 @@
4
             /* but only if the user did not request otherwise              */
5
 
6
             /* building the universal path of this member                  */
7
+            int found_trav = 0;
8
             char patu [sizeof(Entry.diru) + sizeof(Entry.namu) + 2];
9
             strcpy( patu, Entry.diru );
10
             if ( strlen(patu) && patu[strlen(patu)-1] != '/') strcat( patu, "/" );
11
             strcat( patu, (Entry.lnamu ? Entry.namu : Entry.nams) );
12
 
13
-            int found_trav = 0;
14
 
15
             if ( strstr( patu, "/../" )) {
16
-                found_trav = 1;
17
 
18
                 /* remove "/../" from the path                             */
19
                 char tmp [sizeof(patu)];
20
                 char *p;
21
                 char *q;
22
+                found_trav = 1;
23
                 memset(tmp, 0, sizeof(tmp));
24
                 q = patu;
25
 
26
@@ -2625,10 +2625,10 @@
27
                 printf("unzoo: skipped \"/../\" path component(s) in '%s'\n", Entry.patl);
28
             }
29
             if ( *patu == '/' && !strlen( pre ) ) {
30
-                found_trav = 1;
31
 
32
                 char *p = malloc(sizeof(patu));
33
                 char *q = p;
34
+                found_trav = 1;
35
                 memset(p, 0, sizeof(patu));
36
                 strcpy(p, patu);
37
                 while ( q[0] == '/' ) q++;
38
@@ -2638,9 +2638,9 @@
39
                 printf("unzoo: skipped root directory path component in '%s'\n", patl);
40
             }
41
             if ( !strncmp( patu, "../", 3 )) {
42
-                found_trav = 1;
43
 
44
                 char tmp [sizeof(patu)];
45
+                found_trav = 1;
46
                 memset(tmp, 0, sizeof(tmp));
47
                 strcpy(tmp, patu + 3);
48
                 strcpy(patu, tmp);

Return to bug 105832