From dd2fb1104b12c6fb46fbcb4f0a2c5478653c9a82 Mon Sep 17 00:00:00 2001 From: mbalmer Date: Sat, 20 May 2017 08:31:13 +0000 Subject: Only load a module if it is not already loaded in a state (much like userland Lua handles require). Fixes PR kern/52226. --- 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 14e90ba7d5b..9ed427ccbd9 100644 --- a/sys/modules/lua/lua.c +++ b/sys/modules/lua/lua.c @@ -1,8 +1,8 @@ -/* $NetBSD: lua.c,v 1.21 2017/05/11 07:34:27 mbalmer Exp $ */ +/* $NetBSD: lua.c,v 1.22 2017/05/20 08:31:13 mbalmer Exp $ */ /* + * Copyright (c) 2011 - 2017 by Marc Balmer . * Copyright (c) 2014 by Lourival Vieira Neto . - * Copyright (c) 2011 - 2014 by Marc Balmer . * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -514,6 +514,10 @@ lua_require(lua_State *L) if (md != NULL) LIST_FOREACH(s, &lua_states, lua_next) if (s->K->L == L) { + LIST_FOREACH(m, &s->lua_modules, mod_next) + if (m == md) + return 1; + if (lua_verbose) device_printf(sc_self, "require module %s\n", -- cgit