[uri] Special case NULL in churi()
[people/andreif/gpxe.git] / src / core / cwuri.c
index c7f0138..94b26d5 100644 (file)
@@ -16,6 +16,8 @@
  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  */
 
+FILE_LICENCE ( GPL2_OR_LATER );
+
 #include <stddef.h>
 #include <gpxe/uri.h>
 
@@ -36,6 +38,11 @@ struct uri *cwuri = NULL;
  * @v uri              New working URI, or NULL
  */
 void churi ( struct uri *uri ) {
+       struct uri *new_uri = NULL;
+
+       if ( uri )
+               new_uri = resolve_uri ( cwuri, uri );
+
        uri_put ( cwuri );
-       cwuri = uri_get ( uri );
+       cwuri = new_uri;
 }