version 1.15.2.2, 2013/06/04 12:38:08
|
version 1.16, 2013/06/04 12:44:46
|
Line 563 ioRealFileName(const char *fname)
|
Line 563 ioRealFileName(const char *fname)
|
if (!fname) |
if (!fname) |
return NULL; |
return NULL; |
|
|
if (stat(fname, &sb) == -1) { |
|
LOGERR; |
|
return NULL; |
|
} |
|
str = e_malloc(MAXPATHLEN); |
str = e_malloc(MAXPATHLEN); |
if (!str) { |
if (!str) { |
io_SetErr(elwix_GetErrno(), "%s", elwix_GetError()); |
io_SetErr(elwix_GetErrno(), "%s", elwix_GetError()); |
return NULL; |
return NULL; |
} else |
} else |
memset(str, 0, MAXPATHLEN); |
memset(str, 0, MAXPATHLEN); |
if (S_ISLNK(sb.st_mode)) { | if (readlink(fname, str, MAXPATHLEN) == -1) { |
if (readlink(fname, str, MAXPATHLEN) == -1) { | if (stat(fname, &sb) == -1) { |
LOGERR; |
LOGERR; |
e_free(str); |
e_free(str); |
return NULL; |
return NULL; |
} | } else |
} else | strlcpy(str, fname, MAXPATHLEN); |
strlcpy(str, fname, MAXPATHLEN); | } |
|
|
return str; |
return str; |
} |
} |