]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUILD: lua: silence some compiler warnings about potential null derefs (#2)
authorWilly Tarreau <w@1wt.eu>
Tue, 16 Oct 2018 15:37:12 +0000 (17:37 +0200)
committerWilly Tarreau <w@1wt.eu>
Tue, 16 Oct 2018 15:39:05 +0000 (17:39 +0200)
Here we make sure that appctx is always taken from the unchecked value
since we know it's an appctx, which explains why it's immediately
dereferenced. A missing test was added to ensure that task_new() does
not return a NULL.

This may be backported to 1.8.

src/hlua.c

index aaa884073df8678ec1c2a8ef22a52c3af17b57c2..49aee746d21f661d05fd8a093dafe54d06c2cc50 100644 (file)
@@ -2361,7 +2361,7 @@ __LJMP static int hlua_socket_connect_yield(struct lua_State *L, int status, lua
                return 2;
        }
 
-       appctx = objt_appctx(s->si[0].end);
+       appctx = __objt_appctx(s->si[0].end);
 
        /* Check for connection established. */
        if (appctx->ctx.hlua_cosocket.connected) {
@@ -2473,7 +2473,7 @@ __LJMP static int hlua_socket_connect(struct lua_State *L)
        }
 
        hlua = hlua_gethlua(L);
-       appctx = objt_appctx(s->si[0].end);
+       appctx = __objt_appctx(s->si[0].end);
 
        /* inform the stream that we want to be notified whenever the
         * connection completes.
@@ -5723,6 +5723,9 @@ static int hlua_register_task(lua_State *L)
                WILL_LJMP(luaL_error(L, "Lua out of memory error."));
 
        task = task_new(MAX_THREADS_MASK);
+       if (!task)
+               WILL_LJMP(luaL_error(L, "Lua out of memory error."));
+
        task->context = hlua;
        task->process = hlua_process_task;