Fixed memory leak in nsupdate if 'realm' was used multiple times
Resolves: #984687 Signed-off-by: Tomas Hozza <thozza@redhat.com>
This commit is contained in:
parent
3267c0ac54
commit
0cd5a0ff48
@ -27,7 +27,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv
|
||||
Name: bind
|
||||
License: ISC
|
||||
Version: 9.9.4
|
||||
Release: 8%{?PATCHVER}%{?PREVER}%{?dist}
|
||||
Release: 9%{?PATCHVER}%{?PREVER}%{?dist}
|
||||
Epoch: 32
|
||||
Url: http://www.isc.org/products/BIND/
|
||||
Buildroot:%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
@ -86,6 +86,8 @@ Patch138:bind-9.9.3-include-update-h.patch
|
||||
Patch139:bind99-ISC-Bugs-34738.patch
|
||||
# upstream patch [ISC-Bugs #34870]
|
||||
Patch140:bind99-ISC-Bugs-34870-v3.patch
|
||||
# upstream applied patch for [ISC-Bugs #35073]
|
||||
Patch141:bind99-ISC-Bugs-35073.patch
|
||||
|
||||
# SDB patches
|
||||
Patch11: bind-9.3.2b2-sdbsrc.patch
|
||||
@ -286,6 +288,7 @@ popd
|
||||
%patch138 -p1 -b .update
|
||||
%patch139 -p1 -b .journal
|
||||
%patch140 -p1 -b .send_buffer
|
||||
%patch141 -p1 -b .leak_35073
|
||||
|
||||
%if %{SDB}
|
||||
%patch101 -p1 -b .old-api
|
||||
@ -804,6 +807,9 @@ rm -rf ${RPM_BUILD_ROOT}
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Nov 28 2013 Tomas Hozza <thozza@redhat.com> 32:9.9.4-9
|
||||
- Fixed memory leak in nsupdate if 'realm' was used multiple times (#984687)
|
||||
|
||||
* Tue Nov 12 2013 Tomas Hozza <thozza@redhat.com> 32:9.9.4-8
|
||||
- Install configuration for rwtab and fix chroot setup script
|
||||
|
||||
|
31
bind99-ISC-Bugs-35073.patch
Normal file
31
bind99-ISC-Bugs-35073.patch
Normal file
@ -0,0 +1,31 @@
|
||||
diff --git a/bin/nsupdate/nsupdate.c b/bin/nsupdate/nsupdate.c
|
||||
index 486c102..dc12a85 100644
|
||||
--- a/bin/nsupdate/nsupdate.c
|
||||
+++ b/bin/nsupdate/nsupdate.c
|
||||
@@ -1566,16 +1566,20 @@ evaluate_realm(char *cmdline) {
|
||||
#ifdef GSSAPI
|
||||
char *word;
|
||||
char buf[1024];
|
||||
+ int n;
|
||||
|
||||
- word = nsu_strsep(&cmdline, " \t\r\n");
|
||||
- if (word == NULL || *word == 0) {
|
||||
- if (realm != NULL)
|
||||
- isc_mem_free(mctx, realm);
|
||||
+ if (realm != NULL) {
|
||||
+ isc_mem_free(mctx, realm);
|
||||
realm = NULL;
|
||||
- return (STATUS_MORE);
|
||||
}
|
||||
|
||||
- snprintf(buf, sizeof(buf), "@%s", word);
|
||||
+ word = nsu_strsep(&cmdline, " \t\r\n");
|
||||
+ if (word == NULL || *word == 0)
|
||||
+ return (STATUS_MORE);
|
||||
+
|
||||
+ n = snprintf(buf, sizeof(buf), "@%s", word);
|
||||
+ if (n < 0 || (size_t)n >= sizeof(buf))
|
||||
+ fatal("realm is too long");
|
||||
realm = isc_mem_strdup(mctx, buf);
|
||||
if (realm == NULL)
|
||||
fatal("out of memory");
|
Loading…
Reference in New Issue
Block a user