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); |