[SATYR PATCH 1/2] rpm: fix regression in sr_rpm_package_uniq
Michal Toman
mtoman at redhat.com
Mon Jun 3 14:22:23 UTC 2013
Pushed
On 03.06.2013 12:45, Martin Milata wrote:
> Signed-off-by: Martin Milata <mmilata at redhat.com>
> ---
> lib/rpm.c | 8 +++++---
> tests/rpm.at | 47 +++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 52 insertions(+), 3 deletions(-)
>
> diff --git a/lib/rpm.c b/lib/rpm.c
> index df027ff..eb18b61 100644
> --- a/lib/rpm.c
> +++ b/lib/rpm.c
> @@ -260,9 +260,11 @@ sr_rpm_package_uniq(struct sr_rpm_package *packages)
>
> loop = merged;
> }
> -
> - prev = loop;
> - loop = loop->next;
> + else
> + {
> + prev = loop;
> + loop = loop->next;
> + }
> }
>
> return packages;
> diff --git a/tests/rpm.at b/tests/rpm.at
> index dbcabf5..ce2302d 100644
> --- a/tests/rpm.at
> +++ b/tests/rpm.at
> @@ -183,3 +183,50 @@ main(void)
> return 0;
> }
> ]])
> +
> +## -------------------- ##
> +## sr_rpm_package_uniq3 ##
> +## -------------------- ##
> +AT_TESTFUN([sr_rpm_package_uniq3],
> +[[
> +#include <lib/rpm.h>
> +#include <lib/utils.h>
> +#include <assert.h>
> +#include <stdint.h>
> +
> +int
> +main(void)
> +{
> + struct sr_rpm_package *p1 = sr_rpm_package_new();
> + struct sr_rpm_package *p2 = sr_rpm_package_new();
> + struct sr_rpm_package *p3 = sr_rpm_package_new();
> +
> + p1->name = sr_strdup("pango");
> + p1->version = sr_strdup("1.32.3");
> + p1->release = sr_strdup("1.fc18");
> + p1->architecture = sr_strdup("x86_64");
> + p2->install_time = 1363628422;
> + p1->next = p2;
> +
> + p2->name = sr_strdup("pango");
> + p2->version = sr_strdup("1.32.3");
> + p2->release = sr_strdup("1.fc18");
> + p2->architecture = sr_strdup("x86_64");
> + p2->install_time = 1363628422;
> + p2->next = p3;
> +
> + p3->name = sr_strdup("pango");
> + p3->version = sr_strdup("1.32.3");
> + p3->release = sr_strdup("1.fc18");
> + p3->architecture = sr_strdup("x86_64");
> + p3->install_time = 1363628422;
> +
> + struct sr_rpm_package *packages = p1;
> + packages = sr_rpm_package_uniq(packages);
> +
> + assert(packages);
> + assert(!packages->next);
> +
> + return 0;
> +}
> +]])
>
More information about the Crash-catcher
mailing list