[image] Redact password from URIs displayed by imgfetch()
authorMichael Brown <mcb30@etherboot.org>
Tue, 17 Feb 2009 12:10:35 +0000 (12:10 +0000)
committerMichael Brown <mcb30@etherboot.org>
Tue, 17 Feb 2009 12:10:35 +0000 (12:10 +0000)
src/usr/imgmgmt.c

index be153f8..bd53d82 100644 (file)
  */
 int imgfetch ( struct image *image, const char *uri_string,
               int ( * image_register ) ( struct image *image ) ) {
+       char uri_string_redacted[ strlen ( uri_string ) + 3 /* "***" */
+                                 + 1 /* NUL */ ];
        struct uri *uri;
+       const char *password;
        int rc;
 
        if ( ! ( uri = parse_uri ( uri_string ) ) )
@@ -51,9 +54,17 @@ int imgfetch ( struct image *image, const char *uri_string,
 
        image_set_uri ( image, uri );
 
+       /* Redact password portion of URI, if necessary */
+       password = uri->password;
+       if ( password )
+               uri->password = "***";
+       unparse_uri ( uri_string_redacted, sizeof ( uri_string_redacted ),
+                     uri );
+       uri->password = password;
+
        if ( ( rc = create_downloader ( &monojob, image, image_register,
                                        LOCATION_URI, uri ) ) == 0 )
-               rc = monojob_wait ( uri_string );
+               rc = monojob_wait ( uri_string_redacted );
 
        uri_put ( uri );
        return rc;