fs: remove use of strdup

This commit is contained in:
Jeremy Baxter 2024-04-01 17:50:10 +13:00
parent 820f21d306
commit fbcae8c3cb

24
lfs.c
View file

@ -89,17 +89,13 @@ static int
fs_basename(lua_State *L) fs_basename(lua_State *L)
{ {
const char *ret; const char *ret;
char *path; /* parameter 1 (string) */
path = strndup(luaL_checkstring(L, 1), lua_rawlen(L, 1)); ret = basename((char *)luaL_checkstring(L, 1));
ret = basename(path);
if (ret == NULL) if (ret == NULL)
return lfail(L); return lfail(L);
lua_pushstring(L, ret); lua_pushstring(L, ret);
free(path);
return 1; return 1;
} }
@ -187,17 +183,13 @@ static int
fs_dirname(lua_State *L) fs_dirname(lua_State *L)
{ {
const char *ret; const char *ret;
char *path; /* parameter 1 (string) */
path = strndup(luaL_checkstring(L, 1), lua_rawlen(L, 1)); ret = dirname((char *)luaL_checkstring(L, 1));
ret = dirname(path);
if (ret == NULL) if (ret == NULL)
return lfail(L); return lfail(L);
lua_pushstring(L, ret); lua_pushstring(L, ret);
free(path);
return 1; return 1;
} }
@ -454,21 +446,13 @@ fs_mkpath(lua_State *L)
static int static int
fs_mkdir(lua_State *L) fs_mkdir(lua_State *L)
{ {
char *dir; /* parameter 1 (string) */ if (mkdir(luaL_checkstring(L, 1), 0755) == 0)
int ret; return lfail(L);
dir = strdup(luaL_checkstring(L, 1));
ret = mkdir(dir, 0755);
free(dir);
if (ret == 0) {
lua_pushboolean(L, 1); lua_pushboolean(L, 1);
return 1; return 1;
} }
return lfail(L);
}
/*** /***
* Moves the item at path *src* to path *dest*. * Moves the item at path *src* to path *dest*.
* If *dest* exists, it is overwritten. Both *src* and *dest* * If *dest* exists, it is overwritten. Both *src* and *dest*