From ce3bce3f87dd6403b9380c4a45751eb9105d12bc Mon Sep 17 00:00:00 2001 From: salazar Date: Sat, 21 May 2016 12:39:32 +0000 Subject: fix double require bug --- sys/modules/lua/lua.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'sys/modules/lua/lua.c') 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 . @@ -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; -- cgit