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-03-02 15:10:14.007284753 +0700 @@ -183,7 +183,34 @@ } } - 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 + { + if (label == NULL) + { + 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); }