[Libguestfs] [PATCH] lua: always return luaL_error in actions
Pino Toscano
ptoscano at redhat.com
Fri Aug 8 07:45:09 UTC 2014
On Thursday 07 August 2014 20:57:50 Richard W.M. Jones wrote:
> On Thu, Aug 07, 2014 at 07:48:08PM +0200, Pino Toscano wrote:
> > Even if luaL_error is a "no return" function for the Lua runtime,
> > adopt also in action functions the "return" idiom recommeded for
> > it.
> >
> > This also helps code analyzers in not thinking that "g" might still
> > be null after the null check followed by luaL_error.
> > ---
> >
> > generator/lua.ml | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/generator/lua.ml b/generator/lua.ml
> > index 9bd4006..5d5619c 100644
> > --- a/generator/lua.ml
> > +++ b/generator/lua.ml
> > @@ -482,8 +482,8 @@ guestfs_lua_delete_event_callback (lua_State *L)
> >
> > pr "\n";
> >
> > pr " if (g == NULL)\n";
> >
> > - pr " luaL_error (L, \"Guestfs.%%s: handle is closed\",\n";
> > - pr " \"%s\");\n" name;
> > + pr " return luaL_error (L, \"Guestfs.%%s: handle is
> > closed\",\n"; + pr " \"%s\");\n" name;
> >
> > pr "\n";
>
> Yeah, I opened a ticket to get the Coverity model changed several
> years ago, but nothing happened.
On the other hand, neither luaL_error nor lua_error (called internally
by the former) have any attribute on them, so the static analyser cannot
know they will jump back to some point within the interpreter.
Unless, of course, the analyser has some override to know that.
--
Pino Toscano
More information about the Libguestfs
mailing list