> Even more helpful would be, if you could run git bisect to find out the
> offending commit which introduced the regresseion between 0.5.13 and 0.5.14.
> The hal Git repository is available from [2].
> Unfortunately I cannot reproduce the bug here, so your assisstance would be
> really appreciated.

Unfortunately, I can't reproduce this bug after I restarted my system.
However, I have an idea about the reason the crash occured.


File probe-input.c:

int
main (int argc, char *argv[])
{
...

        DBusError error;
...
        button_type = getenv ("HAL_PROP_BUTTON_TYPE");
        if (button_type == NULL)
                goto out;


---
The core dump says that the env variable HAL_PROP_BUTTON_TYPE is not set
(I grepped for it on the strings output, and the only occurence is the
name without =..)

So if HAL_PROP_BUTTON_TYPE does not exist, the code continues at out:.
---


        if (strcmp (button_type, "lid") == 0)
...
        dbus_error_init (&error);
        if ((ctx = libhal_ctx_init_direct (&error)) == NULL)
                goto out;

---
However, the error struct is initialized after the goto out, so when

        LIBHAL_FREE_DBUS_ERROR (&error);

is called, error is not initialized.
---

out:
        if (fd >= 0)
                close (fd);

        LIBHAL_FREE_DBUS_ERROR (&error);

        if (ctx != NULL) {
                libhal_ctx_shutdown (ctx, &error);
                LIBHAL_FREE_DBUS_ERROR (&error);
                libhal_ctx_free (ctx);
        }

        return ret;
}


So maybe the error struct needs to be initialized before the first goto
out:.

WM



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to