* [PATCH 0/1] Fix YOCTO #3656
@ 2013-09-30 9:48 Kai Kang
2013-09-30 9:48 ` [PATCH 1/1] rpm: fix rpm2cpio segmentation fault Kai Kang
0 siblings, 1 reply; 3+ messages in thread
From: Kai Kang @ 2013-09-30 9:48 UTC (permalink / raw)
To: mark.hatle; +Cc: openembedded-core
The following changes since commit b049d532f6e0ab9e458e486f81b00be47ee69acf:
testimage: Exclude BB_ORIGENV variable (2013-09-26 17:27:02 +0100)
are available in the git repository at:
git://git.pokylinux.org/poky-contrib kangkai/rpm2cpio
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=kangkai/rpm2cpio
Kang Kai (1):
rpm: fix rpm2cpio segmentation fault
.../rpm/rpm/rpm2cpio-fix-segmentation-fault.patch | 28 ++++++++++++++++++++++
meta/recipes-devtools/rpm/rpm_5.4.9.bb | 1 +
2 files changed, 29 insertions(+)
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch
--
1.8.1.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/1] rpm: fix rpm2cpio segmentation fault
2013-09-30 9:48 [PATCH 0/1] Fix YOCTO #3656 Kai Kang
@ 2013-09-30 9:48 ` Kai Kang
2013-09-30 14:02 ` Mark Hatle
0 siblings, 1 reply; 3+ messages in thread
From: Kai Kang @ 2013-09-30 9:48 UTC (permalink / raw)
To: mark.hatle; +Cc: openembedded-core
From: Kang Kai <kai.kang@windriver.com>
When run rpm2cpio, it fails with segmentation fault. The root cause is
no macros "_db_path" and "_dbi_config*" defined, when query these macros
get nothing then cause segment fault.
Add patch to parse macro files first to fix this problem.
[YOCTO #3656]
Signed-off-by: Kang Kai <kai.kang@windriver.com>
---
.../rpm/rpm/rpm2cpio-fix-segmentation-fault.patch | 28 ++++++++++++++++++++++
meta/recipes-devtools/rpm/rpm_5.4.9.bb | 1 +
2 files changed, 29 insertions(+)
create mode 100644 meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch
diff --git a/meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch b/meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch
new file mode 100644
index 0000000..cdf8fb1
--- /dev/null
+++ b/meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch
@@ -0,0 +1,28 @@
+Upstream-Status: Pending
+
+rpm2cpio fails on target with "Segmentation fault". Because macros
+"_dbpath" and "_dbi_config*" need to be defined, otherwise query these
+macros will cause segment fault.
+
+Parse config files first to fix this bug. If parse fails, give a warning.
+
+[YOCTO #3656]
+
+Signed-off-by: Kang Kai <kai.kang@windriver.com>
+
+--- rpm-5.4.9/tools/rpm2cpio.c.orig 2013-04-15 10:35:14.269398890 +0800
++++ rpm-5.4.9/tools/rpm2cpio.c 2013-04-15 10:44:12.777417885 +0800
+@@ -87,6 +87,13 @@
+ #endif
+ (void) rpmtsSetVSFlags(ts, vsflags);
+
++ /* If macros "_dbpath" and "_dbi_config*" are not defined,
++ * sigment fault occurs */
++ rc = rpmReadConfigFiles(NULL, NULL);
++ if (rc) {
++ fprintf(stderr, _("Read RPM config files failed that may cause sigment fault.\n"));
++ }
++
+ /*@-mustmod@*/ /* LCL: segfault */
+ rc = rpmReadPackageFile(ts, fdi, "rpm2cpio", &h);
+ /*@=mustmod@*/
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
index 3c7e03b..492393e 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
@@ -88,6 +88,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex
file://debugedit-segv.patch \
file://rpm-platform-file-fix.patch \
file://rpm-lsb-compatibility.patch \
+ file://rpm2cpio-fix-segmentation-fault.patch \
"
# Uncomment the following line to enable platform score debugging
--
1.8.1.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH 1/1] rpm: fix rpm2cpio segmentation fault
2013-09-30 9:48 ` [PATCH 1/1] rpm: fix rpm2cpio segmentation fault Kai Kang
@ 2013-09-30 14:02 ` Mark Hatle
0 siblings, 0 replies; 3+ messages in thread
From: Mark Hatle @ 2013-09-30 14:02 UTC (permalink / raw)
To: Kai Kang; +Cc: openembedded-core
On 9/30/13 4:48 AM, Kai Kang wrote:
> From: Kang Kai <kai.kang@windriver.com>
>
> When run rpm2cpio, it fails with segmentation fault. The root cause is
> no macros "_db_path" and "_dbi_config*" defined, when query these macros
> get nothing then cause segment fault.
>
> Add patch to parse macro files first to fix this problem.
I talked briefly with the RPM maintainer about this a while back.
I don't think this is the right patch. Not because what it does is wrong. (The
patch itself is actually likely correct in the general case.) However, the
proper fix is to simply use the rpm2cpio shell script, and never install the
binary. (This does introduce a dependency on 'file', but I don't believe that
should be a major concern.)
So my suggestion is to rework this fix by:
1) Keep what you have below (why? because if someone really wants the binary
it'll prevent the segfault.)
2) Change the recipe's do_install to copy in the rpm2cpio.sh and replace the
binary version.
3) Ensure that the package that rpm2cpio is in gets a dependency on 'file'.
--Mark
> [YOCTO #3656]
>
> Signed-off-by: Kang Kai <kai.kang@windriver.com>
> ---
> .../rpm/rpm/rpm2cpio-fix-segmentation-fault.patch | 28 ++++++++++++++++++++++
> meta/recipes-devtools/rpm/rpm_5.4.9.bb | 1 +
> 2 files changed, 29 insertions(+)
> create mode 100644 meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch
>
> diff --git a/meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch b/meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch
> new file mode 100644
> index 0000000..cdf8fb1
> --- /dev/null
> +++ b/meta/recipes-devtools/rpm/rpm/rpm2cpio-fix-segmentation-fault.patch
> @@ -0,0 +1,28 @@
> +Upstream-Status: Pending
> +
> +rpm2cpio fails on target with "Segmentation fault". Because macros
> +"_dbpath" and "_dbi_config*" need to be defined, otherwise query these
> +macros will cause segment fault.
> +
> +Parse config files first to fix this bug. If parse fails, give a warning.
> +
> +[YOCTO #3656]
> +
> +Signed-off-by: Kang Kai <kai.kang@windriver.com>
> +
> +--- rpm-5.4.9/tools/rpm2cpio.c.orig 2013-04-15 10:35:14.269398890 +0800
> ++++ rpm-5.4.9/tools/rpm2cpio.c 2013-04-15 10:44:12.777417885 +0800
> +@@ -87,6 +87,13 @@
> + #endif
> + (void) rpmtsSetVSFlags(ts, vsflags);
> +
> ++ /* If macros "_dbpath" and "_dbi_config*" are not defined,
> ++ * sigment fault occurs */
> ++ rc = rpmReadConfigFiles(NULL, NULL);
> ++ if (rc) {
> ++ fprintf(stderr, _("Read RPM config files failed that may cause sigment fault.\n"));
> ++ }
> ++
> + /*@-mustmod@*/ /* LCL: segfault */
> + rc = rpmReadPackageFile(ts, fdi, "rpm2cpio", &h);
> + /*@=mustmod@*/
> diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> index 3c7e03b..492393e 100644
> --- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> +++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
> @@ -88,6 +88,7 @@ SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex
> file://debugedit-segv.patch \
> file://rpm-platform-file-fix.patch \
> file://rpm-lsb-compatibility.patch \
> + file://rpm2cpio-fix-segmentation-fault.patch \
> "
>
> # Uncomment the following line to enable platform score debugging
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2013-09-30 14:02 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-30 9:48 [PATCH 0/1] Fix YOCTO #3656 Kai Kang
2013-09-30 9:48 ` [PATCH 1/1] rpm: fix rpm2cpio segmentation fault Kai Kang
2013-09-30 14:02 ` Mark Hatle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox