mirror of
https://github.com/xcat2/xNBA.git
synced 2024-11-25 02:50:17 +00:00
[uri] Fix NULL dereference in parse_uri()
Don't try to parse authority if it's not there. Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
parent
132c391712
commit
4cb0bfe291
@ -74,8 +74,8 @@ struct uri * parse_uri ( const char *uri_string ) {
|
||||
struct uri *uri;
|
||||
char *raw;
|
||||
char *tmp;
|
||||
char *path = NULL;
|
||||
char *authority = NULL;
|
||||
char *path;
|
||||
char *authority;
|
||||
int i;
|
||||
size_t raw_len;
|
||||
|
||||
@ -110,6 +110,7 @@ struct uri * parse_uri ( const char *uri_string ) {
|
||||
} else {
|
||||
/* Absolute URI with opaque part */
|
||||
uri->opaque = tmp;
|
||||
path = NULL;
|
||||
}
|
||||
} else {
|
||||
/* Relative URI */
|
||||
@ -148,8 +149,15 @@ struct uri * parse_uri ( const char *uri_string ) {
|
||||
} else {
|
||||
/* Absolute/relative path */
|
||||
uri->path = path;
|
||||
authority = NULL;
|
||||
}
|
||||
|
||||
/* If we don't have an authority (i.e. we have a non-net
|
||||
* path), we're already finished processing
|
||||
*/
|
||||
if ( ! authority )
|
||||
goto done;
|
||||
|
||||
/* Split authority into user[:password] and host[:port] portions */
|
||||
if ( ( tmp = strchr ( authority, '@' ) ) ) {
|
||||
/* Has user[:password] */
|
||||
|
Loading…
Reference in New Issue
Block a user