Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[libc] Use only generic errortab entries to match generic errors
  • Loading branch information
Michael Brown committed Nov 16, 2009
1 parent be67084 commit 76d5e49
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions src/hci/strerror.c
Expand Up @@ -24,14 +24,13 @@ FILE_LICENCE ( GPL2_OR_LATER );
* Find error description
*
* @v errno Error number
* @v mask Mask of bits that we care about
* @ret errortab Error description, or NULL
*/
static struct errortab * find_error ( int errno, int mask ) {
static struct errortab * find_error ( int errno ) {
struct errortab *errortab;

for_each_table_entry ( errortab, ERRORTAB ) {
if ( ( ( errortab->errno ^ errno ) & mask ) == 0 )
if ( errortab->errno == errno )
return errortab;
}

Expand All @@ -50,13 +49,13 @@ static struct errortab * find_closest_error ( int errno ) {
struct errortab *errortab;

/* First, look for an exact match */
if ( ( errortab = find_error ( errno, 0x7fffffff ) ) != NULL )
if ( ( errortab = find_error ( errno ) ) != NULL )
return errortab;

/* Second, try masking off the gPXE-specific bit and seeing if
* we have an entry for the generic POSIX error message.
*/
if ( ( errortab = find_error ( errno, 0x4f0000ff ) ) != NULL )
if ( ( errortab = find_error ( errno & 0x7f0000ff ) ) != NULL )
return errortab;

return NULL;
Expand Down

0 comments on commit 76d5e49

Please sign in to comment.