version 1.1, 2012/02/17 15:09:30
|
version 1.1.1.1.2.1, 2013/07/22 00:20:21
|
Line 1168 int handle_partial_dir(const char *fname, int create)
|
Line 1168 int handle_partial_dir(const char *fname, int create)
|
} |
} |
statret = -1; |
statret = -1; |
} |
} |
if (statret < 0 && do_mkdir(dir, 0700) < 0) { | if (statret < 0 && do_mkdir_path(dir, 0700) < 0) { |
*fn = '/'; |
*fn = '/'; |
return 0; |
return 0; |
} |
} |
Line 1177 int handle_partial_dir(const char *fname, int create)
|
Line 1177 int handle_partial_dir(const char *fname, int create)
|
*fn = '/'; |
*fn = '/'; |
|
|
return 1; |
return 1; |
|
} |
|
|
|
/* We need to supply our own strcmp function for file list comparisons |
|
* to ensure that signed/unsigned usage is consistent between machines. */ |
|
int u_strcmp(const char *p1, const char *p2) |
|
{ |
|
for ( ; *p1; p1++, p2++) { |
|
if (*p1 != *p2) |
|
break; |
|
} |
|
|
|
return (int)*(uchar*)p1 - (int)*(uchar*)p2; |
|
} |
|
|
|
/* We need a memcmp function compares unsigned-byte values. */ |
|
int u_memcmp(const void *p1, const void *p2, size_t len) |
|
{ |
|
const uchar *u1 = p1; |
|
const uchar *u2 = p2; |
|
|
|
while (len--) { |
|
if (*u1 != *u2) |
|
return (int)*u1 - (int)*u2; |
|
} |
|
|
|
return 0; |
} |
} |
|
|
/* Determine if a symlink points outside the current directory tree. |
/* Determine if a symlink points outside the current directory tree. |