diff -Naru grub-extras-master.orig/lua/grub_lib.c grub-extras-master/lua/grub_lib.c --- grub-extras-master.orig/lua/grub_lib.c 2013-12-25 01:06:47.000000000 +0700 +++ grub-extras-master/lua/grub_lib.c 2015-02-27 18:15:33.002264978 +0700 @@ -183,7 +183,27 @@ } } - lua_call (state, 3, 1); + if (! fs->label) + lua_pushnil (state); + else + { + int err; + char *label; + + err = fs->label (dev, &label); + if (err) + { + grub_errno = 0; + lua_pushnil (state); + } + else + { + lua_pushstring (state, label); + grub_free (label); + } + } + + lua_call (state, 4, 1); result = lua_tointeger (state, -1); lua_pop (state, 1); }