Hello community,

here is the log from the commit of package numactl for openSUSE:Factory checked 
in at 2014-07-31 10:04:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/numactl (Old)
 and      /work/SRC/openSUSE:Factory/.numactl.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "numactl"

Changes:
--------
--- /work/SRC/openSUSE:Factory/numactl/numactl.changes  2014-06-19 
13:19:57.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.numactl.new/numactl.changes     2014-07-31 
10:04:20.000000000 +0200
@@ -1,0 +2,6 @@
+Tue Jul 29 08:26:28 UTC 2014 - [email protected]
+
+- Fixed patch 0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch
+  for bnc#872922
+
+-------------------------------------------------------------------

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

Other differences:
------------------
++++++ 0001-Fixed-segfault-when-no-node-could-be-found-in-sysfs-.patch ++++++
--- /var/tmp/diff_new_pack.qo4Lek/_old  2014-07-31 10:04:22.000000000 +0200
+++ /var/tmp/diff_new_pack.qo4Lek/_new  2014-07-31 10:04:22.000000000 +0200
@@ -1,49 +1,43 @@
-From a60b4ae108d7853f604e2d75147f6175ba908dfd Mon Sep 17 00:00:00 2001
+From 5dce07818a2f2c6ebde399f58702fe5beecb2eed Mon Sep 17 00:00:00 2001
 From: Julian Wolf <[email protected]>
-Date: Fri, 13 Jun 2014 14:24:36 +0200
+Date: Fri, 18 Jul 2014 14:05:05 +0200
 Subject: [PATCH] Fixed segfault when no node could be found in sysfs
  bnc#872922
 
 ---
- distance.c | 7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
+ distance.c | 15 ++++++---------
+ 1 file changed, 6 insertions(+), 9 deletions(-)
 
 diff --git a/distance.c b/distance.c
-index 4a26972..84affa3 100755
+index 4a26972..5db7fe2 100755
 --- a/distance.c
 +++ b/distance.c
-@@ -57,6 +57,7 @@ static int read_distance_table(void)
-       int maxnode = numa_max_node() + 1;
+@@ -58,19 +58,16 @@ static int read_distance_table(void)
        int *table = NULL;
        int err = -1;
-+      int cnt = 0;
  
-       for (nd = 0;; nd++) {
+-      for (nd = 0;; nd++) {
++      for (nd = 0; nd < maxnode; nd++) {
                char fn[100];
-@@ -70,6 +71,8 @@ static int read_distance_table(void)
-                               continue;
-                       else
-                               break;
-+              }else {
-+                      cnt++;
-               }
+               FILE *dfh;
+               sprintf(fn, "/sys/devices/system/node/node%d/distance", nd);
+               dfh = fopen(fn, "r");
+-              if (!dfh) {
+-                      if (errno == ENOENT)
+-                              err = 0;
+-                      if (!err && nd<maxnode)
+-                              continue;
+-                      else
+-                              break;
+-              }
++              if (dfh) 
++                      err = 0;
++              else
++                      continue;
++              
                len = getdelim(&line, &linelen, '\n', dfh);
                fclose(dfh);
-@@ -87,12 +90,12 @@ static int read_distance_table(void)
-               parse_numbers(line, table + nd * maxnode);
-       }
-       free(line);
--      if (err)  {
-+      if (err || !cnt)  {
-               numa_warn(W_distance,
-                         "Cannot parse distance information in sysfs: %s",
-                         strerror(errno));
-               free(table);
--              return err;
-+              return -1;
-       }
-       /* Update the global table pointer.  Race window here with
-          other threads, but in the worst case we leak one distance
+               if (len <= 0)
 -- 
 1.8.1.4
 

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to