Don't add input group during initgroups_dyn in hesiod (#921760)
This commit is contained in:
parent
bbd581848b
commit
209568f516
55
glibc-rh921760.patch
Normal file
55
glibc-rh921760.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
commit 7a86be6e5f18ba99b25d75c555ce56fe1fcea325
|
||||||
|
Author: Siddhesh Poyarekar <siddhesh@redhat.com>
|
||||||
|
Date: Thu Mar 28 11:45:47 2013 +0530
|
||||||
|
|
||||||
|
Don't add input group during initgroups_dyn in hesiod
|
||||||
|
|
||||||
|
Fixes BZ #15304.
|
||||||
|
|
||||||
|
The *initgroups_dyn functions are called with a group argument. This
|
||||||
|
group gid is usually skipped while populating the grouplist since the
|
||||||
|
caller adds that group id in advance.
|
||||||
|
|
||||||
|
The hesiod initgroups_dyn implementation however adds the group gid to
|
||||||
|
the list if it does not already exist. While it works fine for the
|
||||||
|
usual initgroups, it breaks nscd since it calls initgroups_dyn with -1
|
||||||
|
as the gid (to have all groups included).
|
||||||
|
|
||||||
|
diff --git a/hesiod/nss_hesiod/hesiod-grp.c b/hesiod/nss_hesiod/hesiod-grp.c
|
||||||
|
index c2ae166..b11952f 100644
|
||||||
|
--- a/hesiod/nss_hesiod/hesiod-grp.c
|
||||||
|
+++ b/hesiod/nss_hesiod/hesiod-grp.c
|
||||||
|
@@ -191,33 +191,6 @@ _nss_hesiod_initgroups_dyn (const char *user, gid_t group, long int *start,
|
||||||
|
return errno == ENOENT ? NSS_STATUS_NOTFOUND : NSS_STATUS_UNAVAIL;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!internal_gid_in_list (groups, group, *start))
|
||||||
|
- {
|
||||||
|
- if (__builtin_expect (*start == *size, 0))
|
||||||
|
- {
|
||||||
|
- /* Need a bigger buffer. */
|
||||||
|
- gid_t *newgroups;
|
||||||
|
- long int newsize;
|
||||||
|
-
|
||||||
|
- if (limit > 0 && *size == limit)
|
||||||
|
- /* We reached the maximum. */
|
||||||
|
- goto done;
|
||||||
|
-
|
||||||
|
- if (limit <= 0)
|
||||||
|
- newsize = 2 * *size;
|
||||||
|
- else
|
||||||
|
- newsize = MIN (limit, 2 * *size);
|
||||||
|
-
|
||||||
|
- newgroups = realloc (groups, newsize * sizeof (*groups));
|
||||||
|
- if (newgroups == NULL)
|
||||||
|
- goto done;
|
||||||
|
- *groupsp = groups = newgroups;
|
||||||
|
- *size = newsize;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- groups[(*start)++] = group;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
save_errno = errno;
|
||||||
|
|
||||||
|
p = *list;
|
@ -27,7 +27,7 @@
|
|||||||
Summary: The GNU libc libraries
|
Summary: The GNU libc libraries
|
||||||
Name: glibc
|
Name: glibc
|
||||||
Version: %{glibcversion}
|
Version: %{glibcversion}
|
||||||
Release: 4%{?dist}
|
Release: 5%{?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
|
||||||
@ -115,6 +115,8 @@ Patch0035: %{name}-rh911307.patch
|
|||||||
# Upstream BZ 15078
|
# Upstream BZ 15078
|
||||||
Patch2029: %{name}-rh905877.patch
|
Patch2029: %{name}-rh905877.patch
|
||||||
|
|
||||||
|
Patch1030: %{name}-rh921760.patch
|
||||||
|
|
||||||
#
|
#
|
||||||
# Patches submitted, but not yet approved upstream.
|
# Patches submitted, but not yet approved upstream.
|
||||||
# Each should be associated with a BZ.
|
# Each should be associated with a BZ.
|
||||||
@ -405,6 +407,7 @@ package or when debugging this package.
|
|||||||
%patch2028 -p1
|
%patch2028 -p1
|
||||||
%patch0035 -p1
|
%patch0035 -p1
|
||||||
%patch2029 -p1
|
%patch2029 -p1
|
||||||
|
%patch1030 -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
|
||||||
@ -1204,6 +1207,9 @@ rm -f *.filelist*
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 28 2013 Siddhesh Poyarekar <siddhesh@redhat.com> - 2.17-5
|
||||||
|
- Don't add input group during initgroups_dyn in hesiod (#921760).
|
||||||
|
|
||||||
* Sun Mar 17 2013 Carlos O'Donell <carlos@redhat.com> - 2.17-4
|
* Sun Mar 17 2013 Carlos O'Donell <carlos@redhat.com> - 2.17-4
|
||||||
- Fixed i386 glibc builds (#917161).
|
- Fixed i386 glibc builds (#917161).
|
||||||
- Fixed multibyte character processing crash in regexp (#905877, CVE-2013-0242)
|
- Fixed multibyte character processing crash in regexp (#905877, CVE-2013-0242)
|
||||||
|
Loading…
Reference in New Issue
Block a user