Hi Scott,

thanks for noticing this.   It's submitted.

Niels.

On 7/19/07, Scott Lamb <[EMAIL PROTECTED]> wrote:
> When I use "valgrind --tool=memcheck" on a libevent-based program, it
> gives the following complaint:
>
> ==15442== Conditional jump or move depends on uninitialised value(s)
> ==15442==    at 0x4C0F2D3: event_add (event.c:632)
> ==15442==    by 0x405EE4: main_loop (net.c:356)
> ==15442==    by 0x411853: main (tincd.c:329)
>
> Here's the relevant portion of event.c:
>
> 632                if ((ev->ev_flags & EVLIST_ACTIVE) &&
> 633                    (ev->ev_res & EV_TIMEOUT)) {
>
> I've looked through the libevent code and verified that ev_res is always
> initialized when (ev_flags & EVLIST_ACTIVE) is true, so there's no real
> bug here.
>
> However, it's useful to suppress noise in valgrind output, and there's
> no real cost to initializing ev_res at event_set time. Thus the attached
> patch.
>
> Best regards,
> Scott
>
> --
> Scott Lamb <http://www.slamb.org/>
>
> Avoid valgrind warning
>
> ==15442== Conditional jump or move depends on uninitialised value(s)
> ==15442==    at 0x4C0F2D3: event_add (event.c:632)
> ==15442==    by 0x405EE4: main_loop (net.c:356)
> ==15442==    by 0x411853: main (tincd.c:329)
>
> Index: event.c
> ===================================================================
> --- event.c     (revision 369)
> +++ event.c     (working copy)
> @@ -530,6 +530,7 @@
>         ev->ev_arg = arg;
>         ev->ev_fd = fd;
>         ev->ev_events = events;
> +        ev->ev_res = 0;
>         ev->ev_flags = EVLIST_INIT;
>         ev->ev_ncalls = 0;
>         ev->ev_pncalls = NULL;
>
> _______________________________________________
> Libevent-users mailing list
> Libevent-users@monkey.org
> http://monkey.org/mailman/listinfo/libevent-users
>
>
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkey.org/mailman/listinfo/libevent-users

Reply via email to