X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=util-src%2Fpposix.c;h=73e0d6e390e145be2d2080b67103462d99c56ab8;hb=04bc83bc4d2668a95b4538def5b51cf8611ae111;hp=c0d1f5a29e891484c7fc93139efc0876b9450e88;hpb=74912f1ae3ced3725cc2d87c25b1171af586e693;p=prosody.git diff --git a/util-src/pposix.c b/util-src/pposix.c index c0d1f5a2..73e0d6e3 100644 --- a/util-src/pposix.c +++ b/util-src/pposix.c @@ -36,7 +36,7 @@ #include "lauxlib.h" #include -#if defined(_GNU_SOURCE) +#if defined(__linux__) && defined(_GNU_SOURCE) #include #endif @@ -491,7 +491,7 @@ int string2resource(const char *s) { return -1; } -int arg_to_rlimit(lua_State* L, int idx, rlim_t current) { +unsigned long int arg_to_rlimit(lua_State* L, int idx, rlim_t current) { switch(lua_type(L, idx)) { case LUA_TSTRING: if(strcmp(lua_tostring(L, idx), "unlimited") == 0) @@ -676,11 +676,13 @@ int lc_fallocate(lua_State* L) { off_t offset, len; FILE *f = *(FILE**) luaL_checkudata(L, 1, LUA_FILEHANDLE); + if (f == NULL) + luaL_error(L, "attempt to use a closed file"); offset = luaL_checkinteger(L, 2); len = luaL_checkinteger(L, 3); -#if defined(_GNU_SOURCE) +#if defined(__linux__) && defined(_GNU_SOURCE) if(fallocate(fileno(f), FALLOC_FL_KEEP_SIZE, offset, len) == 0) { lua_pushboolean(L, 1);