dccsight -QG as used in the cgi-scripts segfaults

Vernon Schryver vjs@calcite.rhyolite.com
Fri Mar 18 17:16:20 UTC 2005


> From: Vincent Schonau 

> #0  0x00701940 in rawmemchr () from /lib/tls/libc.so.6
> #1  0x006f6c85 in _IO_str_init_static_internal () from /lib/tls/libc.so.6
> #2  0x006ebedd in vsscanf () from /lib/tls/libc.so.6
> #3  0x006e72bb in sscanf () from /lib/tls/libc.so.6
> #4  0x0804a0e0 in do_grey () at dccsight.c:259
> #5  0x08049d60 in main (argc=0, argv=0xbfeed6c0) at dccsight.c:165

I do not understand that.  Line 259 is

        if (4 != sscanf(optarg, "%16x %16x %16x %16x\n",
                        &u.n[0], &u.n[1], &u.n[2], &u.n[3]))
                dcc_logbad(EX_USAGE,
                           "unrecognized greylist checksum");
with
        union {
            u_int32_t n[4];
            DCC_SUM sum;
        } u;

optarg should be the string "14603910 533bc8c7 7e075830 b3bffb0e"
but no matter what it is, I don't see why sscanf() should be going crazy.

Those %16x patterns look stupid for 32-bit values, but I don't see
what harm they could do.  What am I missing?


Vernon Schryver    vjs@rhyolite.com



More information about the DCC mailing list

Contact vjs@rhyolite.com by mail or use the form.