Hello community,

here is the log from the commit of package kdumpid for openSUSE:Factory checked 
in at 2014-11-05 15:54:59
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kdumpid (Old)
 and      /work/SRC/openSUSE:Factory/.kdumpid.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kdumpid"

Changes:
--------
--- /work/SRC/openSUSE:Factory/kdumpid/kdumpid.changes  2013-07-29 
17:42:02.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.kdumpid.new/kdumpid.changes     2014-11-05 
15:55:11.000000000 +0100
@@ -1,0 +2,32 @@
+Tue Nov  4 10:21:51 UTC 2014 - [email protected]
+
+- kdumpid-fix-kdump_is_xen.patch: Fix wrong use of kdump_is_xen().
+
+-------------------------------------------------------------------
+Mon Nov  3 23:18:07 UTC 2014 - [email protected]
+
+- kdumpid-x86-out-of-bounds-disas.patch: x86: Prevent out-of-bounds
+  reads in disas_at().
+
+-------------------------------------------------------------------
+Mon Nov  3 21:12:46 UTC 2014 - [email protected]
+
+- kdumpid-quit-on-libkdumpfile-failure.patch: Quit on libkdumpfile
+  failure.
+- kdumpid-x86_64-fix-NULL-arch-segv.patch Fix SEGV when checking
+  x86_64 and arch is unknown.
+
+-------------------------------------------------------------------
+Mon Nov  3 09:24:07 UTC 2014 - [email protected]
+
+- kdumpid-libkdumpfile-libs.patch: Do not try to link additional
+  libraries needed by libkdumpfile.
+
+-------------------------------------------------------------------
+Mon Nov  3 09:10:56 UTC 2014 - [email protected]
+
+- Update to version 1.0:
+  * Include Xen version in the output
+  * Backend split off to libkdumpfile
+
+-------------------------------------------------------------------

Old:
----
  kdumpid-0.92.tar.bz2

New:
----
  kdumpid-1.0.tar.bz2
  kdumpid-fix-kdump_is_xen.patch
  kdumpid-libkdumpfile-libs.patch
  kdumpid-quit-on-libkdumpfile-failure.patch
  kdumpid-x86-out-of-bounds-disas.patch
  kdumpid-x86_64-fix-NULL-arch-segv.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kdumpid.spec ++++++
--- /var/tmp/diff_new_pack.mLVFeu/_old  2014-11-05 15:55:14.000000000 +0100
+++ /var/tmp/diff_new_pack.mLVFeu/_new  2014-11-05 15:55:14.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package kdumpid
 #
-# Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -15,7 +15,6 @@
 # Please submit bugfixes or comments via http://bugs.opensuse.org/
 #
 
-# norootforbuild
 
 #Url:
 
@@ -26,14 +25,20 @@
 %else
 BuildRequires:  binutils-devel
 %endif
-License:        GPL-2.0+
-Group:          System/Kernel
-Version:        0.92
+BuildRequires:  libkdumpfile-devel
+Version:        1.0
 Release:        0
 Summary:        Utility to extract information from vmcores
+License:        GPL-2.0+
+Group:          System/Kernel
 Url:            http://sourceforge.net/p/kdumpid
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
-Source:         kdumpid-%{version}.tar.bz2
+Source:         %{name}-%{version}.tar.bz2
+Patch1:         %{name}-libkdumpfile-libs.patch
+Patch2:         %{name}-x86_64-fix-NULL-arch-segv.patch
+Patch3:         %{name}-quit-on-libkdumpfile-failure.patch
+Patch4:         %{name}-x86-out-of-bounds-disas.patch
+Patch5:         %{name}-fix-kdump_is_xen.patch
 
 %description
 Kdumpid extracts information such as type of dump, architecture
@@ -42,6 +47,11 @@
 
 %prep
 %setup
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
 
 %build
 make CUSTOM_CFLAGS="${CFLAGS:-%optflags}"

++++++ kdumpid-0.92.tar.bz2 -> kdumpid-1.0.tar.bz2 ++++++
++++ 2637 lines of diff (skipped)

++++++ kdumpid-fix-kdump_is_xen.patch ++++++
Date: Tue Nov 4 11:20:28 2014 +0100
From: Petr Tesarik <[email protected]>
Subject: Fix wrong usage of kdump_is_xen()
Patch-mainline: v1.1
Git-commit: a557c16904df5ca29eec27494c43470e662fb8e7

Fix a regression from commit e1a8f69a238f1efa2dc1e693513c1366912ffe0e.
The whole expression "dd->flags & DIF_XEN" is equivallent to
"kdump_is_xen(dd->ctx)". Performing a logical AND operation with
the program flags only causes random failures.

Signed-off-by: Petr Tesarik <[email protected]>

---
 util.c |    2 +-
 x86.c  |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

--- a/util.c
+++ b/util.c
@@ -228,7 +228,7 @@ explore_kernel(struct dump_desc *dd, exp
        if (arch_in_array(dd->arch, x86_biarch)) {
                /* Xen pv kernels are loaded low */
                addr = 0x2000;
-               if (dd->flags & kdump_is_xen(dd->ctx) &&
+               if (kdump_is_xen(dd->ctx) &&
                    looks_like_kcode_x86(dd, addr) > 0 &&
                    !fn(dd, addr, addr + MAX_KERNEL_SIZE, x86_biarch)) {
                        dd->start_addr = addr;
--- a/x86.c
+++ b/x86.c
@@ -218,7 +218,7 @@ disas_at(struct dump_desc *dd, struct di
                                return 1;
                        if (is_reg(arg1, "si")) {
                                state.flags |= SI_STORED;
-                               if (dd->flags & kdump_is_xen(dd->ctx) &&
+                               if (kdump_is_xen(dd->ctx) &&
                                    !(state.flags & SI_MODIFIED) &&
                                    sscanf(arg2, "0x%llx", &a) == 1)
                                        dd->xen_start_info = a;
++++++ kdumpid-libkdumpfile-libs.patch ++++++
From: Petr Tesarik <[email protected]>
Subject: Do not try to link additional libraries needed by libkdumpfile
Patch-mainline: not yet

While these libraries would be needed for static linking, they are not
required for dynamic linking, which is done here.

Signed-off-by: Petr Tesarik <[email protected]>

---
 Makefile |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/Makefile
+++ b/Makefile
@@ -11,7 +11,7 @@ MANDIR=$(PREFIX)/man
 endif
 
 CUSTOM_CFLAGS=
-LIBS += -lkdumpfile -lz -llzo2 -lsnappy -lopcodes -lbfd -liberty -ldl
+LIBS += -lkdumpfile -lz -lopcodes -lbfd -liberty -ldl
 
 LD=ld
 
++++++ kdumpid-quit-on-libkdumpfile-failure.patch ++++++
Date: Mon Nov  3 22:11:26 CET 2014
From: Petr Tesarik <[email protected]>
Subject: Quit on libkdumpfile failure
Patch-mainline: not yet

If kdump_fdopen() fails, it is not safe to use any function on the
kdump_ctx variable.

Signed-off-by: Petr Tesarik <[email protected]>

---
 main.c |    1 +
 1 file changed, 1 insertion(+)

--- a/main.c
+++ b/main.c
@@ -118,6 +118,7 @@ main(int argc, char **argv)
                        status == kdump_syserr
                        ? strerror(errno)
                        : "libkdumpfile failure");
+               return 2;
        }
 
        dd.page_size = kdump_pagesize(dd.ctx);
++++++ kdumpid-x86-out-of-bounds-disas.patch ++++++
Date: Tue Nov 4 00:15:37 2014 +0100
From: Petr Tesarik <[email protected]>
Subject: x86: Prevent out-of-bounds reads in disas_at()
Patch-mainline: v1.1
Git-commit: a6baa2d02f125fd76f4ece14bea9d922e19b10e3

Since the buffer_vma is already subtracted from the target address,
the condition should simply check that a is within the target page.

Signed-off-by: Petr Tesarik <[email protected]>

---
 x86.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/x86.c
+++ b/x86.c
@@ -171,7 +171,7 @@ disas_at(struct dump_desc *dd, struct di
                        int cont = strncmp(insn, "jmp", 3);
 
                        a -= info->buffer_vma;
-                       if (a < info->buffer_vma + dd->page_size) {
+                       if (a < dd->page_size) {
                                priv->initstate = state;
                                ++priv->initstate.depth;
                                if (disas_at(dd, info, a) > 0)
++++++ kdumpid-x86_64-fix-NULL-arch-segv.patch ++++++
Date: Mon Nov  3 21:48:25 CET 2014
From: Petr Tesarik <[email protected]>
Subject: Fix SEGV when checking x86_64 and arch is unknown
Patch-mainline: not yet

The probe for x86_64 avoids checking the architecture if it is known already.
However, this check uses strcmp(), which does not work with NULL pointers,
but a NULL pointer is used to specify unknown architecture.

Signed-off-by: Petr Tesarik <[email protected]>

---
 x86.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

--- a/x86.c
+++ b/x86.c
@@ -258,7 +258,8 @@ looks_like_kcode_x86(struct dump_desc *d
        /* Try i386 code first */
        info.mach          = bfd_mach_i386_i386;
        disassemble_init_for_target(&info);
-       if (strcmp(dd->arch, "x86_64") && disas_at(dd, &info, 0) > 0) {
+       if ((!dd->arch || strcmp(dd->arch, "x86_64")) &&
+           disas_at(dd, &info, 0) > 0) {
                free(priv);
                return 1;
        }
@@ -267,7 +268,8 @@ looks_like_kcode_x86(struct dump_desc *d
        memset(priv, 0, sizeof(struct disas_priv) + dd->page_size / 8);
        info.mach          = bfd_mach_x86_64;
        disassemble_init_for_target(&info);
-       if (strcmp(dd->arch, "i386") && disas_at(dd, &info, 0) > 0) {
+       if ((!dd->arch || strcmp(dd->arch, "i386")) &&
+           disas_at(dd, &info, 0) > 0) {
                free(priv);
                return 1;
        }
-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to