import/pull: fix pulling by image digest

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
This commit is contained in:
Pavel Odvody 2015-06-17 13:25:06 +02:00
parent afc4290e2c
commit 4764a54439

View 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)) {