Hello community,

here is the log from the commit of package libapr1 for openSUSE:Factory checked 
in at 2014-08-27 22:18:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libapr1 (Old)
 and      /work/SRC/openSUSE:Factory/.libapr1.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libapr1"

Changes:
--------
--- /work/SRC/openSUSE:Factory/libapr1/libapr1.changes  2014-06-25 
15:24:18.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.libapr1.new/libapr1.changes     2014-08-27 
22:18:06.000000000 +0200
@@ -1,0 +2,8 @@
+Tue Aug 19 23:28:46 UTC 2014 - [email protected]
+
+- 0004-Backport-r1593600-from-1.6.patch memory leak apr_pvsprintf()
+- 0005-Backport-r1593612-from-1.6.patch Missing error codes in 
apr_error_string()
+- 0007-backport-r1604596-1604598-from-trunk.patch memory corruption in 
apr_skiplist
+- 0009-Merge-r1610854-from-trunk.patch posix semaphore must handle EINTR.
+
+-------------------------------------------------------------------

New:
----
  0004-Backport-r1593600-from-1.6.patch
  0005-Backport-r1593612-from-1.6.patch
  0007-backport-r1604596-1604598-from-trunk.patch
  0009-Merge-r1610854-from-trunk.patch

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

Other differences:
------------------
++++++ libapr1.spec ++++++
--- /var/tmp/diff_new_pack.ovqwXa/_old  2014-08-27 22:18:08.000000000 +0200
+++ /var/tmp/diff_new_pack.ovqwXa/_new  2014-08-27 22:18:08.000000000 +0200
@@ -31,6 +31,10 @@
 Patch1:         string-compare.diff
 Patch4:         apr-1.4.5-linux3.patch
 Patch5:         apr-visibility.patch
+Patch6:         0004-Backport-r1593600-from-1.6.patch
+Patch7:         0005-Backport-r1593612-from-1.6.patch
+Patch8:         0007-backport-r1604596-1604598-from-trunk.patch
+Patch9:         0009-Merge-r1610854-from-trunk.patch
 BuildRequires:  doxygen
 BuildRequires:  fdupes
 BuildRequires:  libtool
@@ -79,7 +83,10 @@
 %patch1
 %patch4
 %patch5 -p1
-
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
 # Do not put date to doxy content
 sed -i \
        -e '4 iHTML_TIMESTAMP=NO' \

++++++ 0004-Backport-r1593600-from-1.6.patch ++++++
>From dc099b699dc673f61a7a130d83e63a2c8c06f5bb Mon Sep 17 00:00:00 2001
From: Stefan Fritsch <[email protected]>
Date: Fri, 9 May 2014 19:55:08 +0000
Subject: [PATCH 04/13] Backport r1593600 from 1.6: Backport r1438940 from
 trunk:

    Don't leak memnodes in apr_pvsprintf() if out of memory and no pool abort
    function is set



git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.5.x@1593610 
13f79535-47bb-0310-9956-ffa450edef68
---
 memory/unix/apr_pools.c | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/memory/unix/apr_pools.c b/memory/unix/apr_pools.c
index 5c1a1ff..20e4254 100644
--- a/memory/unix/apr_pools.c
+++ b/memory/unix/apr_pools.c
@@ -1135,21 +1135,12 @@ APR_DECLARE(char *) apr_pvsprintf(apr_pool_t *pool, 
const char *fmt, va_list ap)
      * room to hold the NUL terminator.
      */
     if (ps.node->first_avail == ps.node->endp) {
-        if (psprintf_flush(&ps.vbuff) == -1) {
-            if (pool->abort_fn) {
-                pool->abort_fn(APR_ENOMEM);
-            }
-
-            return NULL;
-        }
+        if (psprintf_flush(&ps.vbuff) == -1)
+           goto error;
     }
 
-    if (apr_vformatter(psprintf_flush, &ps.vbuff, fmt, ap) == -1) {
-        if (pool->abort_fn)
-            pool->abort_fn(APR_ENOMEM);
-
-        return NULL;
-    }
+    if (apr_vformatter(psprintf_flush, &ps.vbuff, fmt, ap) == -1)
+        goto error;
 
     strp = ps.vbuff.curpos;
     *strp++ = '\0';
@@ -1195,6 +1186,15 @@ APR_DECLARE(char *) apr_pvsprintf(apr_pool_t *pool, 
const char *fmt, va_list ap)
     list_insert(active, node);
 
     return strp;
+
+error:
+    if (pool->abort_fn)
+        pool->abort_fn(APR_ENOMEM);
+    if (ps.got_a_new_node) {
+        ps.node->next = ps.free;
+        allocator_free(pool->allocator, ps.node);
+    }
+    return NULL;
 }
 
 
-- 
2.0.4

++++++ 0005-Backport-r1593612-from-1.6.patch ++++++
>From 5a7aa108394a9a59079c73a0ff875907b8992cf0 Mon Sep 17 00:00:00 2001
From: Stefan Fritsch <[email protected]>
Date: Fri, 9 May 2014 20:01:43 +0000
Subject: [PATCH 05/13] Backport r1593612 from 1.6: Backport r1593611 from
 trunk:

    Add some missing error messages to apr_error_string



git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.5.x@1593613 
13f79535-47bb-0310-9956-ffa450edef68
---
 misc/unix/errorcodes.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/misc/unix/errorcodes.c b/misc/unix/errorcodes.c
index 75567c2..f553a37 100644
--- a/misc/unix/errorcodes.c
+++ b/misc/unix/errorcodes.c
@@ -39,6 +39,8 @@ static char *stuffbuffer(char *buf, apr_size_t bufsize, const 
char *s)
 static char *apr_error_string(apr_status_t statcode)
 {
     switch (statcode) {
+    case APR_ENOSTAT:
+        return "Could not perform a stat on the file.";
     case APR_ENOPOOL:
         return "A new pool could not be created.";
     case APR_EBADDATE:
@@ -73,7 +75,10 @@ static char *apr_error_string(apr_status_t statcode)
         return "The specified IP address is invalid.";
     case APR_EBADMASK:
         return "The specified network mask is invalid.";
-
+    case APR_ESYMNOTFOUND:
+        return "Could not find the requested symbol.";
+    case APR_ENOTENOUGHENTROPY:
+        return "Not enough entropy to continue.";
     case APR_INCHILD:
         return
            "Your code just forked, and you are currently executing in the "
@@ -128,10 +133,12 @@ static char *apr_error_string(apr_status_t statcode)
         return "The given path is misformatted or contained invalid 
characters";
     case APR_EPATHWILD:
         return "The given path contained wildcard characters";
+    case APR_EBUSY:
+        return "The given lock was busy.";
     case APR_EPROC_UNKNOWN:
         return "The process is not recognized.";
     case APR_EGENERAL:
-        return "Internal error";
+        return "Internal error (specific information not available)";
     default:
         return "Error string not specified yet";
     }
-- 
2.0.4

++++++ 0007-backport-r1604596-1604598-from-trunk.patch ++++++
>From 05ec343f6afde074e4106573ac279895aa77f450 Mon Sep 17 00:00:00 2001
From: Eric Covener <[email protected]>
Date: Thu, 26 Jun 2014 12:47:31 +0000
Subject: [PATCH 07/13] backport r1604596,1604598 from trunk:

    Add a basic skiplist test.  Based on test program posted to PR 56654 by 
Takashi Sato.

    Submitted By: Takashi Sato, covener
    Committed By: covener


    apr_skiplist becomes corrupt when nodes are reused.

    Submitted By: Takashi Sato <takashi tks st>, covener
    committed By: covener



git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.5.x@1605769 
13f79535-47bb-0310-9956-ffa450edef68
---
 CHANGES               |   4 +-
 tables/apr_skiplist.c |   2 -
 test/Makefile.in      |   2 +-
 test/abts_tests.h     |   3 +-
 test/testskiplist.c   | 100 ++++++++++++++++++++++++++++++++++++++++++++++++++
 test/testutil.h       |   1 +
 6 files changed, 107 insertions(+), 5 deletions(-)
 create mode 100644 test/testskiplist.c

diff --git a/tables/apr_skiplist.c b/tables/apr_skiplist.c
index effcf60..07e9ccc 100644
--- a/tables/apr_skiplist.c
+++ b/tables/apr_skiplist.c
@@ -387,11 +387,9 @@ APR_DECLARE(apr_skiplistnode *) 
apr_skiplist_insert_compare(apr_skiplist *sl, vo
             (apr_skiplistnode *)apr_skiplist_alloc(sl, 
sizeof(apr_skiplistnode));
         sl->top->up->down = sl->top;
         sl->top = sl->topend = sl->top->up;
-#if 0
         sl->top->prev = sl->top->next = sl->top->nextindex =
             sl->top->previndex = sl->top->up = NULL;
         sl->top->data = NULL;
-#endif
         sl->top->sl = sl;
     }
     ch = sl->height;
-- 
2.0.4

++++++ 0009-Merge-r1610854-from-trunk.patch ++++++
>From eb5e8e0dd4c6295905e8c4fe4f1cfec42d8ad761 Mon Sep 17 00:00:00 2001
From: Jeff Trawick <[email protected]>
Date: Wed, 16 Jul 2014 13:26:17 +0000
Subject: [PATCH 09/13] Merge r1610854 from trunk:

Resolve failures with the POSIX sem implementation of APR
process mutexes (and thus global mutexes) in environments which
receive signals.

EINTR is now handled on the sem_* calls that are documented as
exposing EINTR in the Linux, FreeBSD, and/or Solaris docs.

There are a few other calls that haven't been updated:
sem_unlink(), sem_post(), and sem_close().


git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.5.x@1611000 
13f79535-47bb-0310-9956-ffa450edef68
---
 CHANGES                 |  4 ++++
 locks/unix/proc_mutex.c | 22 ++++++++++++++++++----
 2 files changed, 22 insertions(+), 4 deletions(-)

diff --git a/locks/unix/proc_mutex.c b/locks/unix/proc_mutex.c
index fa8a872..32012a7 100644
--- a/locks/unix/proc_mutex.c
+++ b/locks/unix/proc_mutex.c
@@ -114,7 +114,9 @@ static apr_status_t 
proc_mutex_posix_create(apr_proc_mutex_t *new_mutex,
         usec = apr_time_usec(now);
         apr_snprintf(semname, sizeof(semname), "/ApR.%lxZ%lx", sec, usec);
     }
-    psem = sem_open(semname, O_CREAT | O_EXCL, 0644, 1);
+    do {
+        psem = sem_open(semname, O_CREAT | O_EXCL, 0644, 1);
+    } while (psem == (sem_t *)SEM_FAILED && errno == EINTR);
     if (psem == (sem_t *)SEM_FAILED) {
         if (errno == ENAMETOOLONG) {
             /* Oh well, good try */
@@ -122,7 +124,9 @@ static apr_status_t 
proc_mutex_posix_create(apr_proc_mutex_t *new_mutex,
         } else {
             return errno;
         }
-        psem = sem_open(semname, O_CREAT | O_EXCL, 0644, 1);
+        do {
+            psem = sem_open(semname, O_CREAT | O_EXCL, 0644, 1);
+        } while (psem == (sem_t *)SEM_FAILED && errno == EINTR);
     }
 
     if (psem == (sem_t *)SEM_FAILED) {
@@ -140,7 +144,12 @@ static apr_status_t 
proc_mutex_posix_create(apr_proc_mutex_t *new_mutex,
 
 static apr_status_t proc_mutex_posix_acquire(apr_proc_mutex_t *mutex)
 {
-    if (sem_wait(mutex->psem_interproc) < 0) {
+    int rc;
+
+    do {
+        rc = sem_wait(mutex->psem_interproc);
+    } while (rc < 0 && errno == EINTR);
+    if (rc < 0) {
         return errno;
     }
     mutex->curr_locked = 1;
@@ -149,7 +158,12 @@ static apr_status_t 
proc_mutex_posix_acquire(apr_proc_mutex_t *mutex)
 
 static apr_status_t proc_mutex_posix_tryacquire(apr_proc_mutex_t *mutex)
 {
-    if (sem_trywait(mutex->psem_interproc) < 0) {
+    int rc;
+
+    do {
+        rc = sem_trywait(mutex->psem_interproc);
+    } while (rc < 0 && errno == EINTR);
+    if (rc < 0) {
         if (errno == EAGAIN) {
             return APR_EBUSY;
         }
-- 
2.0.4

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

Reply via email to