Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/rpm-software-management/createrepo_c.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAleš Matěj <amatej@redhat.com>2021-12-01 12:31:00 +0300
committerNeal Gompa (ニール・ゴンパ) <ngompa13@gmail.com>2021-12-12 00:05:31 +0300
commitfc47e3f48d70b05fa7dab39103c0d5777f8fdf84 (patch)
tree9892d9c932182f0e09d33db820b83d81ca789b99
parentde45f9c32d83a47843e42e5141ee8ffd422efdd6 (diff)
cr_str_to_nevr/a can return NULL, check for that so we don't crash
-rw-r--r--src/misc.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/misc.c b/src/misc.c
index 4bd9f4c..4144dbc 100644
--- a/src/misc.c
+++ b/src/misc.c
@@ -1070,6 +1070,10 @@ cr_split_rpm_filename(const char *filename)
nevra = cr_str_to_nevra(str);
g_free(str);
+ if (!nevra) {
+ g_free(epoch);
+ return NULL;
+ }
if (epoch) {
g_free(nevra->epoch);
@@ -1226,10 +1230,19 @@ cr_str_to_nevra(const char *instr)
g_warning("Invalid arch %s", nevra->arch);
cr_nevra_free(nevra);
g_free(str);
+ g_free(epoch);
return NULL;
}
nevr = cr_str_to_nevr(str);
+ if (!nevr) {
+ g_warning("Invalid nevr %s", str);
+ cr_nevra_free(nevra);
+ g_free(str);
+ g_free(epoch);
+ return NULL;
+ }
+
nevra->name = nevr->name;
nevra->epoch = nevr->epoch;
nevra->version = nevr->version;