mirror of
https://github.com/lunarmodules/luafilesystem.git
synced 2026-07-22 02:53:06 +00:00
16
src/lfs.c
16
src/lfs.c
@@ -186,9 +186,12 @@ static int get_dir (lua_State *L) {
|
|||||||
size_t size = LFS_MAXPATHLEN; /* initial buffer size */
|
size_t size = LFS_MAXPATHLEN; /* initial buffer size */
|
||||||
int result;
|
int result;
|
||||||
while (1) {
|
while (1) {
|
||||||
path = realloc(path, size);
|
char* path2 = realloc(path, size);
|
||||||
if (!path) /* failed to allocate */
|
if (!path2) /* failed to allocate */ {
|
||||||
return pusherror(L, "get_dir realloc() failed");
|
result = pusherror(L, "get_dir realloc() failed");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
path = path2;
|
||||||
if (getcwd(path, size) != NULL) {
|
if (getcwd(path, size) != NULL) {
|
||||||
/* success, push the path to the Lua stack */
|
/* success, push the path to the Lua stack */
|
||||||
lua_pushstring(L, path);
|
lua_pushstring(L, path);
|
||||||
@@ -860,9 +863,12 @@ static int push_link_target(lua_State *L) {
|
|||||||
char *target = NULL;
|
char *target = NULL;
|
||||||
int tsize, size = 256; /* size = initial buffer capacity */
|
int tsize, size = 256; /* size = initial buffer capacity */
|
||||||
while (1) {
|
while (1) {
|
||||||
target = realloc(target, size);
|
char* target2 = realloc(target, size);
|
||||||
if (!target) /* failed to allocate */
|
if (!target2) { /* failed to allocate */
|
||||||
|
free(target);
|
||||||
return 0;
|
return 0;
|
||||||
|
}
|
||||||
|
target = target2;
|
||||||
tsize = readlink(file, target, size);
|
tsize = readlink(file, target, size);
|
||||||
if (tsize < 0) { /* a readlink() error occurred */
|
if (tsize < 0) { /* a readlink() error occurred */
|
||||||
free(target);
|
free(target);
|
||||||
|
|||||||
Reference in New Issue
Block a user