"Theo de Raadt" <dera...@openbsd.org> writes:

> Why?  The size of an array changes, but the ABI does not change
> in a visible fashion.

tcpdump uses that symbol directly:


/*XXX from libbpfc.a */
extern struct eproto {
        char *s;
        u_short p;
} eproto_db[];

static void
init_eprotoarray(void)
{
        int i;
        struct hnamemem *table;

        for (i = 0; eproto_db[i].s; i++) {
                int j = ntohs(eproto_db[i].p) & (HASHNAMESIZE-1);
                table = &eprototable[j];
                while (table->name)
                        table = table->nxt;
                table->name = eproto_db[i].s;
                table->addr = ntohs(eproto_db[i].p);
                table->nxt = newhnamemem();
        }
}

The result is a (harmless) warning:

tcpdump:tcpdump: /usr/lib/libpcap.so.8.2 : WARNING: symbol(eproto_db) size 
mismatch, relink your program

It would probably be nice to stop using directly this from tcpdump, and
to hide that stuff using the Symbols.list infrastructure.  But for now
I think that a minor bump is better than nothing.

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to