diff options
-rw-r--r-- | src/host/os_match.c | 13 | ||||
-rw-r--r-- | src/host/os_uuid.c | 4 |
2 files changed, 13 insertions, 4 deletions
diff --git a/src/host/os_match.c b/src/host/os_match.c index 460bf5f..3e20282 100644 --- a/src/host/os_match.c +++ b/src/host/os_match.c @@ -36,9 +36,16 @@ int os_matchstart(lua_State* L) { const char* mask = luaL_checkstring(L, 1); MatchInfo* m = (MatchInfo*)malloc(sizeof(MatchInfo)); - m->handle = FindFirstFile(mask, &m->entry); /* error handling happens in os_matchnext() below */ - m->is_first = 1; - lua_pushlightuserdata(L, m); + if (m) + { + m->handle = FindFirstFile(mask, &m->entry); /* error handling happens in os_matchnext() below */ + m->is_first = 1; + lua_pushlightuserdata(L, m); + } + else + { + lua_pushnil(L); + } return 1; } diff --git a/src/host/os_uuid.c b/src/host/os_uuid.c index 28be4e8..e3bee6b 100644 --- a/src/host/os_uuid.c +++ b/src/host/os_uuid.c @@ -15,7 +15,9 @@ int os_uuid(lua_State* L) char uuid[38]; #if PLATFORM_WINDOWS - CoCreateGuid((GUID*)bytes); + HRESULT hr = CoCreateGuid((GUID*)bytes); + if (FAILED(hr)) + return 0; #else int result; |