]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[autoboot] Cope properly with empty DHCP filenames
authorMichael Brown <mcb30@ipxe.org>
Tue, 1 Feb 2011 04:25:38 +0000 (04:25 +0000)
committerMichael Brown <mcb30@ipxe.org>
Tue, 1 Feb 2011 04:26:19 +0000 (04:26 +0000)
This (hopefully) fixes a regression introduced in commit e088892
("[autoboot] Connect SAN disk during a filename boot, if applicable").

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/usr/autoboot.c

index 20c67f341402a7e49c0ed81cae29114da9556392..bb7d692efc0ee8f1fdd6edbebcb1c1ce146d42c2 100644 (file)
@@ -81,11 +81,11 @@ static struct uri * parse_next_server_and_filename ( struct in_addr next_server,
         * filenames with and without initial slashes, which is
         * significant for TFTP.
         */
-       if ( ! uri_is_absolute ( uri ) ) {
+       if ( next_server.s_addr && filename[0] && ! uri_is_absolute ( uri ) ) {
                uri_put ( uri );
                snprintf ( buf, sizeof ( buf ), "tftp://%s/%s",
                           inet_ntoa ( next_server ), filename );
-               uri = parse_uri ( filename );
+               uri = parse_uri ( buf );
                if ( ! uri )
                        return NULL;
        }
@@ -130,7 +130,7 @@ int uriboot ( struct uri *filename, struct uri *root_path ) {
        }
 
        /* Treat empty URIs as absent */
-       if ( filename && ( ! filename->path ) )
+       if ( filename && ( ! uri_has_path ( filename ) ) )
                filename = NULL;
        if ( root_path && ( ! uri_is_absolute ( root_path ) ) )
                root_path = NULL;