This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch master updated. glibc-2.18-670-g063b2ac
- From: ppluzhnikov at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 19 Dec 2013 18:26:14 -0000
- Subject: GNU C Library master sources branch master updated. glibc-2.18-670-g063b2ac
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".
The branch, master has been updated
via 063b2acbce83549df82ab30f5af573f1b9c4bd19 (commit)
from 21fea2e228c4e6f83bf51133de72f70fc61a6b6c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=063b2acbce83549df82ab30f5af573f1b9c4bd19
commit 063b2acbce83549df82ab30f5af573f1b9c4bd19
Author: Paul Pluzhnikov <ppluzhnikov@google.com>
Date: Thu Dec 19 10:25:23 2013 -0800
Cleanup compile warnings.
2013-12-19 Paul Pluzhnikov <ppluzhnikov@google.com>
* elf/dl-misc.c (ptr_to_signal_safe_allocator_header): New function.
(__signal_safe_memalign, __signal_safe_free): Use it.
(__signal_safe_realloc): Likewise.
diff --git a/ChangeLog b/ChangeLog
index c391d70..d76ae06 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2013-12-19 Paul Pluzhnikov <ppluzhnikov@google.com>
+
+ * elf/dl-misc.c (ptr_to_signal_safe_allocator_header): New function.
+ (__signal_safe_memalign, __signal_safe_free): Use it.
+ (__signal_safe_realloc): Likewise.
+
2013-12-19 Joseph Myers <joseph@codesourcery.com>
* manual/texinfo.tex: Update to version 2013-11-26.10 with
diff --git a/elf/dl-misc.c b/elf/dl-misc.c
index cec65d0..e5c76a7 100644
--- a/elf/dl-misc.c
+++ b/elf/dl-misc.c
@@ -380,15 +380,23 @@ struct __signal_safe_allocator_header
void *start;
};
+static inline struct __signal_safe_allocator_header *
+ptr_to_signal_safe_allocator_header (void *ptr)
+{
+ return (struct __signal_safe_allocator_header *)
+ ((char *) (ptr) - sizeof (struct __signal_safe_allocator_header));
+}
+
void *weak_function
__signal_safe_memalign (size_t boundary, size_t size)
{
struct __signal_safe_allocator_header *header;
+
if (boundary < sizeof (*header))
boundary = sizeof (*header);
/* Boundary must be a power of two. */
- if (boundary & (boundary - 1) == 0)
+ if ((boundary & (boundary - 1)) == 0)
return NULL;
size_t pg = GLRO (dl_pagesize);
@@ -432,9 +440,9 @@ __signal_safe_memalign (size_t boundary, size_t size)
actual = (void *) ((start_pg - 1) * pg);
}
char *start = (void *) (start_pg * pg);
- header = start - sizeof (*header);
-
+ header = ptr_to_signal_safe_allocator_header (start);
}
+
header->size = actual_size;
header->start = actual;
void *ptr = header;
@@ -456,7 +464,8 @@ __signal_safe_free (void *ptr)
if (ptr == NULL)
return;
- struct __signal_safe_allocator_header *header = ((char *) ptr) - sizeof (*header);
+ struct __signal_safe_allocator_header *header
+ = ptr_to_signal_safe_allocator_header (ptr);
int ret = munmap (header->start, header->size);
assert (ret == 0);
@@ -473,7 +482,8 @@ __signal_safe_realloc (void *ptr, size_t size)
if (ptr == NULL)
return __signal_safe_malloc (size);
- struct __signal_safe_allocator_header *header = ((char *) ptr) - sizeof (*header);
+ struct __signal_safe_allocator_header *header
+ = ptr_to_signal_safe_allocator_header (ptr);
size_t old_size = header->size;
if (old_size - sizeof (*header) >= size)
return ptr;
-----------------------------------------------------------------------
Summary of changes:
ChangeLog | 6 ++++++
elf/dl-misc.c | 20 +++++++++++++++-----
2 files changed, 21 insertions(+), 5 deletions(-)
hooks/post-receive
--
GNU C Library master sources