diff options
-rw-r--r-- | liolib.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -277,6 +277,8 @@ static int io_popen (lua_State *L) { | |||
277 | const char *filename = luaL_checkstring(L, 1); | 277 | const char *filename = luaL_checkstring(L, 1); |
278 | const char *mode = luaL_optstring(L, 2, "r"); | 278 | const char *mode = luaL_optstring(L, 2, "r"); |
279 | LStream *p = newprefile(L); | 279 | LStream *p = newprefile(L); |
280 | luaL_argcheck(L, ((mode[0] == 'r' || mode[0] == 'w') && mode[1] == '\0'), | ||
281 | 2, "invalid mode"); | ||
280 | p->f = l_popen(L, filename, mode); | 282 | p->f = l_popen(L, filename, mode); |
281 | p->closef = &io_pclose; | 283 | p->closef = &io_pclose; |
282 | return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; | 284 | return (p->f == NULL) ? luaL_fileresult(L, 0, filename) : 1; |