- Resync with msater.
- Drop local patch for 788989. - Repack patchlist.
This commit is contained in:
parent
e3a9f6982a
commit
e781949a22
2
.gitignore
vendored
2
.gitignore
vendored
@ -73,3 +73,5 @@ glibc-2.14-394-g8f3b1ff
|
|||||||
/glibc-2.16.90-3e2e43e2.tar.gz
|
/glibc-2.16.90-3e2e43e2.tar.gz
|
||||||
/glibc-2.16.90-14bc93a9-fedora.tar.gz
|
/glibc-2.16.90-14bc93a9-fedora.tar.gz
|
||||||
/glibc-2.16.90-14bc93a9.tar.gz
|
/glibc-2.16.90-14bc93a9.tar.gz
|
||||||
|
/glibc-2.16.90-2af1b328-fedora.tar.gz
|
||||||
|
/glibc-2.16.90-2af1b328.tar.gz
|
||||||
|
@ -1,159 +0,0 @@
|
|||||||
2012-04-12 Jeff Law <law@redhat.com>
|
|
||||||
|
|
||||||
* nscd/grpcache.c (cache_addgr): Track alloca usage with alloca_account.
|
|
||||||
Do not allocate DATASET on the stack if it's too large. Free DATASET
|
|
||||||
if needed.
|
|
||||||
|
|
||||||
diff -rcp a/nscd/grpcache.c b/nscd/grpcache.c
|
|
||||||
*** a/nscd/grpcache.c Wed Apr 11 12:50:07 2012
|
|
||||||
--- b/nscd/grpcache.c Wed Apr 11 21:45:58 2012
|
|
||||||
*************** cache_addgr (struct database_dyn *db, in
|
|
||||||
*** 178,184 ****
|
|
||||||
char *cp;
|
|
||||||
const size_t key_len = strlen (key);
|
|
||||||
const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1;
|
|
||||||
! char *buf = alloca (buf_len);
|
|
||||||
ssize_t n;
|
|
||||||
size_t cnt;
|
|
||||||
|
|
||||||
--- 178,185 ----
|
|
||||||
char *cp;
|
|
||||||
const size_t key_len = strlen (key);
|
|
||||||
const size_t buf_len = 3 * sizeof (grp->gr_gid) + key_len + 1;
|
|
||||||
! size_t alloca_used = 0;
|
|
||||||
! char *buf = alloca_account (buf_len, alloca_used);
|
|
||||||
ssize_t n;
|
|
||||||
size_t cnt;
|
|
||||||
|
|
||||||
*************** cache_addgr (struct database_dyn *db, in
|
|
||||||
*** 190,196 ****
|
|
||||||
/* Determine the length of all members. */
|
|
||||||
while (grp->gr_mem[gr_mem_cnt])
|
|
||||||
++gr_mem_cnt;
|
|
||||||
! gr_mem_len = (uint32_t *) alloca (gr_mem_cnt * sizeof (uint32_t));
|
|
||||||
for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt)
|
|
||||||
{
|
|
||||||
gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1;
|
|
||||||
--- 191,198 ----
|
|
||||||
/* Determine the length of all members. */
|
|
||||||
while (grp->gr_mem[gr_mem_cnt])
|
|
||||||
++gr_mem_cnt;
|
|
||||||
! gr_mem_len = (uint32_t *) alloca_account (gr_mem_cnt * sizeof (uint32_t),
|
|
||||||
! alloca_used);
|
|
||||||
for (gr_mem_cnt = 0; grp->gr_mem[gr_mem_cnt]; ++gr_mem_cnt)
|
|
||||||
{
|
|
||||||
gr_mem_len[gr_mem_cnt] = strlen (grp->gr_mem[gr_mem_cnt]) + 1;
|
|
||||||
*************** cache_addgr (struct database_dyn *db, in
|
|
||||||
*** 205,214 ****
|
|
||||||
change. Allocate memory on the cache since it is likely
|
|
||||||
discarded anyway. If it turns out to be necessary to have a
|
|
||||||
new record we can still allocate real memory. */
|
|
||||||
! bool alloca_used = false;
|
|
||||||
dataset = NULL;
|
|
||||||
|
|
||||||
! if (he == NULL)
|
|
||||||
dataset = (struct dataset *) mempool_alloc (db, total + n, 1);
|
|
||||||
|
|
||||||
if (dataset == NULL)
|
|
||||||
--- 207,216 ----
|
|
||||||
change. Allocate memory on the cache since it is likely
|
|
||||||
discarded anyway. If it turns out to be necessary to have a
|
|
||||||
new record we can still allocate real memory. */
|
|
||||||
! bool dataset_in_stack_or_freed = false;
|
|
||||||
dataset = NULL;
|
|
||||||
|
|
||||||
! if (he == NULL || ! __libc_use_alloca (alloca_used + total + n))
|
|
||||||
dataset = (struct dataset *) mempool_alloc (db, total + n, 1);
|
|
||||||
|
|
||||||
if (dataset == NULL)
|
|
||||||
*************** cache_addgr (struct database_dyn *db, in
|
|
||||||
*** 216,225 ****
|
|
||||||
/* We cannot permanently add the result in the moment. But
|
|
||||||
we can provide the result as is. Store the data in some
|
|
||||||
temporary memory. */
|
|
||||||
! dataset = (struct dataset *) alloca (total + n);
|
|
||||||
|
|
||||||
/* We cannot add this record to the permanent database. */
|
|
||||||
! alloca_used = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
dataset->head.allocsize = total + n;
|
|
||||||
--- 218,227 ----
|
|
||||||
/* We cannot permanently add the result in the moment. But
|
|
||||||
we can provide the result as is. Store the data in some
|
|
||||||
temporary memory. */
|
|
||||||
! dataset = (struct dataset *) alloca_account (total + n, alloca_used);
|
|
||||||
|
|
||||||
/* We cannot add this record to the permanent database. */
|
|
||||||
! dataset_in_stack_or_freed = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
dataset->head.allocsize = total + n;
|
|
||||||
*************** cache_addgr (struct database_dyn *db, in
|
|
||||||
*** 273,278 ****
|
|
||||||
--- 275,288 ----
|
|
||||||
allocated on the stack and need not be freed. */
|
|
||||||
dh->timeout = dataset->head.timeout;
|
|
||||||
++dh->nreloads;
|
|
||||||
+
|
|
||||||
+ /* If the new record was not allocated on the stack, then it must
|
|
||||||
+ be freed. Note that it can no longer be used. */
|
|
||||||
+ if (! dataset_in_stack_or_freed)
|
|
||||||
+ {
|
|
||||||
+ free (dataset);
|
|
||||||
+ dataset_in_stack_or_freed = true;
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
*************** cache_addgr (struct database_dyn *db, in
|
|
||||||
*** 288,294 ****
|
|
||||||
key_copy = (char *) newp + (key_copy - (char *) dataset);
|
|
||||||
|
|
||||||
dataset = memcpy (newp, dataset, total + n);
|
|
||||||
! alloca_used = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Mark the old record as obsolete. */
|
|
||||||
--- 298,304 ----
|
|
||||||
key_copy = (char *) newp + (key_copy - (char *) dataset);
|
|
||||||
|
|
||||||
dataset = memcpy (newp, dataset, total + n);
|
|
||||||
! dataset_in_stack_or_freed = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Mark the old record as obsolete. */
|
|
||||||
*************** cache_addgr (struct database_dyn *db, in
|
|
||||||
*** 303,309 ****
|
|
||||||
assert (fd != -1);
|
|
||||||
|
|
||||||
#ifdef HAVE_SENDFILE
|
|
||||||
! if (__builtin_expect (db->mmap_used, 1) && !alloca_used)
|
|
||||||
{
|
|
||||||
assert (db->wr_fd != -1);
|
|
||||||
assert ((char *) &dataset->resp > (char *) db->data);
|
|
||||||
--- 313,319 ----
|
|
||||||
assert (fd != -1);
|
|
||||||
|
|
||||||
#ifdef HAVE_SENDFILE
|
|
||||||
! if (__builtin_expect (db->mmap_used, 1) && !dataset_in_stack_or_freed)
|
|
||||||
{
|
|
||||||
assert (db->wr_fd != -1);
|
|
||||||
assert ((char *) &dataset->resp > (char *) db->data);
|
|
||||||
*************** cache_addgr (struct database_dyn *db, in
|
|
||||||
*** 330,336 ****
|
|
||||||
|
|
||||||
/* Add the record to the database. But only if it has not been
|
|
||||||
stored on the stack. */
|
|
||||||
! if (! alloca_used)
|
|
||||||
{
|
|
||||||
/* If necessary, we also propagate the data to disk. */
|
|
||||||
if (db->persistent)
|
|
||||||
--- 340,346 ----
|
|
||||||
|
|
||||||
/* Add the record to the database. But only if it has not been
|
|
||||||
stored on the stack. */
|
|
||||||
! if (! dataset_in_stack_or_freed)
|
|
||||||
{
|
|
||||||
/* If necessary, we also propagate the data to disk. */
|
|
||||||
if (db->persistent)
|
|
19
glibc.spec
19
glibc.spec
@ -1,4 +1,4 @@
|
|||||||
%define glibcsrcdir glibc-2.16.90-14bc93a9
|
%define glibcsrcdir glibc-2.16.90-2af1b328
|
||||||
%define glibcversion 2.16.90
|
%define glibcversion 2.16.90
|
||||||
### glibc.spec.in follows:
|
### glibc.spec.in follows:
|
||||||
%define run_glibc_tests 1
|
%define run_glibc_tests 1
|
||||||
@ -27,7 +27,7 @@
|
|||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: %{glibcversion}
|
Version: %{glibcversion}
|
||||||
Release: 32%{?dist}
|
Release: 33%{?dist}
|
||||||
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
|
# GPLv2+ is used in a bunch of programs, LGPLv2+ is used for libraries.
|
||||||
# Things that are linked directly into dynamically linked programs
|
# Things that are linked directly into dynamically linked programs
|
||||||
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
|
# and shared libraries (e.g. crt files, lib*_nonshared.a) have an additional
|
||||||
@ -96,6 +96,7 @@ Patch0018: %{name}-fedora-strict-aliasing.patch
|
|||||||
Patch0019: %{name}-fedora-nis-rh188246.patch
|
Patch0019: %{name}-fedora-nis-rh188246.patch
|
||||||
Patch0020: %{name}-fedora-manual-dircategory.patch
|
Patch0020: %{name}-fedora-manual-dircategory.patch
|
||||||
Patch0024: %{name}-fedora-locarchive.patch
|
Patch0024: %{name}-fedora-locarchive.patch
|
||||||
|
Patch0025: %{name}-fedora-streams-rh436349.patch
|
||||||
Patch0028: %{name}-fedora-localedata-rh61908.patch
|
Patch0028: %{name}-fedora-localedata-rh61908.patch
|
||||||
|
|
||||||
# Needs to be sent upstream
|
# Needs to be sent upstream
|
||||||
@ -122,7 +123,6 @@ Patch0043: %{name}-fedora-ldd.patch
|
|||||||
Patch0044: %{name}-fedora-linux-tcsetattr.patch
|
Patch0044: %{name}-fedora-linux-tcsetattr.patch
|
||||||
Patch0045: %{name}-fedora-locale-euro.patch
|
Patch0045: %{name}-fedora-locale-euro.patch
|
||||||
Patch0046: %{name}-fedora-localedata-locales-fixes.patch
|
Patch0046: %{name}-fedora-localedata-locales-fixes.patch
|
||||||
Patch0047: %{name}-fedora-streams-rh436349.patch
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Patches from upstream
|
# Patches from upstream
|
||||||
@ -154,9 +154,6 @@ Patch2022: %{name}-rh800224.patch
|
|||||||
# Upstream BZ 14247
|
# Upstream BZ 14247
|
||||||
Patch2023: %{name}-rh827510.patch
|
Patch2023: %{name}-rh827510.patch
|
||||||
|
|
||||||
# Upstream BZ 13761
|
|
||||||
Patch2025: %{name}-rh788989-2.patch
|
|
||||||
|
|
||||||
# Upstream BZ 13028
|
# Upstream BZ 13028
|
||||||
Patch2026: %{name}-rh841787.patch
|
Patch2026: %{name}-rh841787.patch
|
||||||
|
|
||||||
@ -410,7 +407,7 @@ package or when debugging this package.
|
|||||||
%patch2022 -p1
|
%patch2022 -p1
|
||||||
%patch2023 -p1
|
%patch2023 -p1
|
||||||
%patch0024 -p1
|
%patch0024 -p1
|
||||||
%patch2025 -p1
|
%patch0025 -p1
|
||||||
%patch2026 -p1
|
%patch2026 -p1
|
||||||
%patch2027 -p1
|
%patch2027 -p1
|
||||||
%patch0028 -p1
|
%patch0028 -p1
|
||||||
@ -432,7 +429,6 @@ package or when debugging this package.
|
|||||||
%patch0044 -p1
|
%patch0044 -p1
|
||||||
%patch0045 -p1
|
%patch0045 -p1
|
||||||
%patch0046 -p1
|
%patch0046 -p1
|
||||||
%patch0047 -p1
|
|
||||||
|
|
||||||
# On powerpc32, hp timing is only available in power4/power6
|
# On powerpc32, hp timing is only available in power4/power6
|
||||||
# libs, not in base, so pre-power4 dynamic linker is incompatible
|
# libs, not in base, so pre-power4 dynamic linker is incompatible
|
||||||
@ -1227,7 +1223,12 @@ rm -f *.filelist*
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Nov 28 2012 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.16.90-32
|
* Thu Nov 29 2012 Jeff Law <law@redhat.com> - 2.16.90-33
|
||||||
|
- Resync with msater.
|
||||||
|
- Drop local patch for 788989.
|
||||||
|
- Repack patchlist.
|
||||||
|
|
||||||
|
* Wed Nov 28 2012 Jeff Law <law@redhat.com> - 2.16.90-32
|
||||||
- Resync with master.
|
- Resync with master.
|
||||||
- Drop local patch for 878913.
|
- Drop local patch for 878913.
|
||||||
- Drop local patch for 880666.
|
- Drop local patch for 880666.
|
||||||
|
4
sources
4
sources
@ -1,2 +1,2 @@
|
|||||||
dd3bdcaf6bde00d0484eace472d01ccc glibc-2.16.90-14bc93a9-fedora.tar.gz
|
f708bdecec850f4035d5242f80be3d02 glibc-2.16.90-2af1b328-fedora.tar.gz
|
||||||
d8d1869f634ef7cffcf7ed3cd11e5f3c glibc-2.16.90-14bc93a9.tar.gz
|
35892d87ef0c9cbb694ef023b37019f2 glibc-2.16.90-2af1b328.tar.gz
|
||||||
|
Loading…
Reference in New Issue
Block a user