]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
import/pull: fix pulling by image digest 247/head
authorPavel Odvody <podvody@redhat.com>
Wed, 17 Jun 2015 11:25:06 +0000 (13:25 +0200)
committerPavel Odvody <podvody@redhat.com>
Thu, 18 Jun 2015 10:04:30 +0000 (12:04 +0200)
When pulling by image digest the identifiers that
were produced by parsing image digest were later
overwritten by code parsing image tag.
This resulted in invalid identifiers being used
when contacting the remote endpoint, resulting in 404.

Reported here:
http://lists.freedesktop.org/archives/systemd-devel/2015-June/033039.html

src/import/pull.c

index ca33d2f3fae17c9c20c610115aa3fe811bee56e0..ca7be6be85b02832ec584bf71d843e9f73cead15 100644 (file)
@@ -245,15 +245,15 @@ static int pull_dkr(int argc, char *argv[], void *userdata) {
         if (digest) {
                 reference = digest + 1;
                 name = strndupa(argv[1], digest - argv[1]);
-        }
-
-        reference = strchr(argv[1], ':');
-        if (reference) {
-                name = strndupa(argv[1], reference - argv[1]);
-                reference++;
         } else {
-                name = argv[1];
-                reference = "latest";
+                reference = strchr(argv[1], ':');
+                if (reference) {
+                        name = strndupa(argv[1], reference - argv[1]);
+                        reference++;
+                } else {
+                        name = argv[1];
+                        reference = "latest";
+                }
         }
 
         if (!dkr_name_is_valid(name)) {