Module Name:    src
Committed By:   salazar
Date:           Sat May 21 12:39:33 UTC 2016

Modified Files:
        src/sys/modules/lua: lua.c

Log Message:
fix double require bug


To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/sys/modules/lua/lua.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/modules/lua/lua.c
diff -u src/sys/modules/lua/lua.c:1.16 src/sys/modules/lua/lua.c:1.17
--- src/sys/modules/lua/lua.c:1.16	Sat Feb  7 04:09:13 2015
+++ src/sys/modules/lua/lua.c	Sat May 21 12:39:32 2016
@@ -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 <ln...@netbsd.org>.
@@ -355,7 +355,10 @@ luaioctl(dev_t dev, u_long cmd, void *da
 	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 *da
 					    	    mod_next);
 					    	return 0;
 					}
+			}
 		return ENXIO;
 	case LUALOAD:
 		load = data;

Reply via email to