diff options
Diffstat (limited to 'recipes-core/swupd-client/swupd-client-2.87/0001-Tolerate-quotes-in-os-release-files.patch')
-rw-r--r-- | recipes-core/swupd-client/swupd-client-2.87/0001-Tolerate-quotes-in-os-release-files.patch | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/recipes-core/swupd-client/swupd-client-2.87/0001-Tolerate-quotes-in-os-release-files.patch b/recipes-core/swupd-client/swupd-client-2.87/0001-Tolerate-quotes-in-os-release-files.patch new file mode 100644 index 0000000..c5faae8 --- /dev/null +++ b/recipes-core/swupd-client/swupd-client-2.87/0001-Tolerate-quotes-in-os-release-files.patch @@ -0,0 +1,58 @@ +From 0ac7226645db1c7048863755a296e1e5f7d8319c Mon Sep 17 00:00:00 2001 +From: Dmitry Rozhkov <dmitry.rozhkov@intel.com> +Date: Thu, 11 Feb 2016 12:49:30 +0200 +Subject: [PATCH] Tolerate quotes in os-release files + +Some systems like Yocto or OpenSUSE prefer to wrap values in +/etc/os-release file with quotes always and that still conforms +to the format defined in systemd. + +This patch removes quotes from the values before trying to +transform them into integer version id. + +Upstream-Status: Backport (v3.0.0+) + +Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@intel.com> +--- + src/version.c | 18 +++++++++++++++++- + 1 file changed, 17 insertions(+), 1 deletion(-) + +diff --git a/src/version.c b/src/version.c +index d8ad76b..1708a98 100644 +--- a/src/version.c ++++ b/src/version.c +@@ -95,6 +95,7 @@ int read_version_from_subvol_file(char *path_prefix) + FILE *file; + int v = -1; + char *buildstamp; ++ char *src, *dest; + + string_or_die(&buildstamp, "%s/usr/lib/os-release", path_prefix); + file = fopen(buildstamp, "rm"); +@@ -116,7 +117,22 @@ int read_version_from_subvol_file(char *path_prefix) + if (fgets(line, LINE_MAX, file) == NULL) + break; + +- if (strncmp(line,"VERSION_ID=", 11) == 0) { ++ if (strncmp(line, "VERSION_ID=", 11) == 0) { ++ src = &line[11]; ++ ++ /* Drop quotes and newline in value */ ++ dest = src; ++ while (*src) { ++ if (*src == '\'' || *src == '"' || *src == '\n') { ++ ++src; ++ } else { ++ *dest = *src; ++ ++dest; ++ ++src; ++ } ++ } ++ *dest = 0; ++ + v = strtoull(&line[11], NULL, 10); + break; + } +-- +2.5.0 + |