diff options
author | Aaron Young | 2019-01-09 20:35:39 +0100 |
---|---|---|
committer | Michael Brown | 2019-01-15 15:12:27 +0100 |
commit | 3946aa9bac1b4a784924fab1693bfebfdd357438 (patch) | |
tree | f3d76d225d0f7b16ad5a530c511a125714683bb7 /src/core | |
parent | [efi] Fix error handling path in efi_snp_probe (diff) | |
download | ipxe-3946aa9bac1b4a784924fab1693bfebfdd357438.tar.gz ipxe-3946aa9bac1b4a784924fab1693bfebfdd357438.tar.xz ipxe-3946aa9bac1b4a784924fab1693bfebfdd357438.zip |
[libc] Fix strcmp()/strncmp() to return proper values
Fix strcmp() and strncmp() to return proper standard positive/negative
values for unequal strings. Current implementation is backwards
(i.e. the functions are returning negative when should be positive and
vice-versa).
Currently all consumers of these functions only check the return value
for ==0 or !=0 and so we can safely change the implementation without
breaking things.
Signed-off-by: Aaron Young <Aaron.Young@oracle.com>
Modified-by: Michael Brown <mcb30@ipxe.org>
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/string.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/core/string.c b/src/core/string.c index 5a185e63..5bd9dae8 100644 --- a/src/core/string.c +++ b/src/core/string.c @@ -173,7 +173,7 @@ int strncmp ( const char *first, const char *second, size_t max ) { int diff; for ( ; max-- ; first_bytes++, second_bytes++ ) { - diff = ( *second_bytes - *first_bytes ); + diff = ( *first_bytes - *second_bytes ); if ( diff ) return diff; if ( ! *first_bytes ) @@ -195,8 +195,8 @@ int strcasecmp ( const char *first, const char *second ) { int diff; for ( ; ; first_bytes++, second_bytes++ ) { - diff = ( toupper ( *second_bytes ) - - toupper ( *first_bytes ) ); + diff = ( toupper ( *first_bytes ) - + toupper ( *second_bytes ) ); if ( diff ) return diff; if ( ! *first_bytes ) |