gas/hash.c: add interface for looking up non-NUL-terminated strings
Alan Modra
amodra@bigpond.net.au
Mon Apr 4 03:21:00 GMT 2005
On Tue, Mar 29, 2005 at 12:00:37PM -0800, Zack Weinberg wrote:
>
> The appended patch adds a new interface to gas/hash.c, hash_find_n,
> with exactly the same semantics as hash_find except that the length of
> the key is passed in as an argument, and the key is not assumed to be
> NUL-terminated. This is more convenient when parsing an assembly
> instruction: one does not need to write a NUL into the line buffer so
> that hash_find knows where to stop.
Hmm, seems to me that writing a NUL into the line buffer isn't that
onerous. I'd like to see more justification for this patch,
particularly since we have too many hash table implementations already
in binutils. At some stage I'd like to move bfd and gas over to use
libiberty's hashtab.c, and another interface difference will make that
task harder.
> - if (strcmp (p->string, key) == 0)
> + if (p->string[len] == '\0' && strncmp (p->string, key, len) == 0)
Potential access past the end of p->string. The strncmp must come
first.
--
Alan Modra
IBM OzLabs - Linux Technology Centre
More information about the Binutils
mailing list