Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[uri] Handle an empty unparse_uri() result properly
Previously, if none of the URI parts requested existed in the passed
URI, unparse_uri() would not touch the destination buffer at all; this
could lead to use of uninitialized data. Fix by setting buf[0] = '\0'
before unparsing whenever we have room to do so.

Signed-off-by: Joshua Oreman <oremanj@rwcr.net>
Signed-off-by: Marty Connor <mdc@etherboot.org>
  • Loading branch information
rwcr authored and Marty Connor committed Jan 27, 2010
1 parent 329c7b7 commit e6f08b0
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions src/core/uri.c
Expand Up @@ -225,12 +225,13 @@ int unparse_uri ( char *buf, size_t size, struct uri *uri,
dump_uri ( uri );
DBG ( "\n" );

/* Ensure buffer is NUL-terminated */
if ( size )
buf[0] = '\0';

/* Special-case NULL URI */
if ( ! uri ) {
if ( size )
buf[0] = '\0';
if ( ! uri )
return 0;
}

/* Iterate through requested fields */
for ( i = URI_FIRST_FIELD; i <= URI_LAST_FIELD; i++ ) {
Expand Down

0 comments on commit e6f08b0

Please sign in to comment.