mirror of https://github.com/ipxe/ipxe.git
[settings] Fix setting_cmp() to handle nameless settings
setting_cmp() compares by option tag and then by name. Empty names will always match, which gives us a false positive. Fix by explicitly checking for empty names. Modified-by: Michael Brown <mcb30@etherboot.org> Signed-off-by: Michael Brown <mcb30@etherboot.org>pull/1/head
parent
edfbd4e4fa
commit
68973f1c49
|
@ -782,8 +782,12 @@ int setting_cmp ( struct setting *a, struct setting *b ) {
|
|||
if ( a->tag && ( a->tag == b->tag ) )
|
||||
return 0;
|
||||
|
||||
/* Otherwise, compare the names */
|
||||
return strcmp ( a->name, b->name );
|
||||
/* Otherwise, if the settings have names, compare them */
|
||||
if ( a->name && b->name && a->name[0] )
|
||||
return strcmp ( a->name, b->name );
|
||||
|
||||
/* Otherwise, return a non-match */
|
||||
return ( ! 0 );
|
||||
}
|
||||
|
||||
/******************************************************************************
|
||||
|
|
Loading…
Reference in New Issue