diff options
| author | salazar <salazar@NetBSD.org> | 2016-05-21 12:39:32 +0000 |
|---|---|---|
| committer | salazar <salazar@NetBSD.org> | 2016-05-21 12:39:32 +0000 |
| commit | ce3bce3f87dd6403b9380c4a45751eb9105d12bc (patch) | |
| tree | 9286cee8fe935f6768f395b3e6587f5ff608539e /sys | |
| parent | ebea55f3cd543aa4f1cec3a62c8bdd1d8a08f01b (diff) | |
fix double require bug
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/modules/lua/lua.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/sys/modules/lua/lua.c b/sys/modules/lua/lua.c index 7f69436910e..55a19fb8752 100644 --- a/sys/modules/lua/lua.c +++ b/sys/modules/lua/lua.c @@ -1,4 +1,4 @@ -/* $NetBSD: lua.c,v 1.16 2015/02/07 04:09:13 christos Exp $ */ +/* $NetBSD: lua.c,v 1.17 2016/05/21 12:39:32 salazar Exp $ */ /* * Copyright (c) 2014 by Lourival Vieira Neto <lneto@NetBSD.org>. @@ -355,7 +355,10 @@ luaioctl(dev_t dev, u_long cmd, void *data, int flag, struct lwp *l) case LUAREQUIRE: /* 'require' a module in a State */ require = data; LIST_FOREACH(s, &lua_states, lua_next) - if (!strcmp(s->lua_name, require->state)) + if (!strcmp(s->lua_name, require->state)) { + LIST_FOREACH(m, &s->lua_modules, mod_next) + if (!strcmp(m->mod_name, require->module)) + return ENXIO; LIST_FOREACH(m, &lua_modules, mod_next) if (!strcmp(m->mod_name, require->module)) { @@ -379,6 +382,7 @@ luaioctl(dev_t dev, u_long cmd, void *data, int flag, struct lwp *l) mod_next); return 0; } + } return ENXIO; case LUALOAD: load = data; |
