fix: segfault when LDIF input is not terminated by newline
Resolves: #716858
This commit is contained in:
parent
4098fcd663
commit
2aeb38e146
31
openladp-segfault-ldif-nl-end.patch
Normal file
31
openladp-segfault-ldif-nl-end.patch
Normal file
@ -0,0 +1,31 @@
|
||||
commit 83814a220fb70db8344469dc3e2db5357b36fc5c
|
||||
Author: Jan Vcelak <jvcelak@redhat.com>
|
||||
Date: Mon Jun 20 17:31:57 2011 +0200
|
||||
|
||||
ITS#6947 Handle missing '\n' termination in LDIF input
|
||||
|
||||
diff --git a/libraries/libldap/ldif.c b/libraries/libldap/ldif.c
|
||||
index 0ee7849..0bc35bb 100644
|
||||
--- a/libraries/libldap/ldif.c
|
||||
+++ b/libraries/libldap/ldif.c
|
||||
@@ -842,11 +842,16 @@ ldif_read_record(
|
||||
|
||||
if ( fgets( line, sizeof( line ), lfp->fp ) == NULL ) {
|
||||
stop = 1;
|
||||
- /* Add \n in case the file does not end with newline */
|
||||
- line[0] = '\n';
|
||||
- line[1] = '\0';
|
||||
+ len = 0;
|
||||
+ } else {
|
||||
+ len = strlen( line );
|
||||
+ }
|
||||
+
|
||||
+ if ( len == 0 || line[len-1] != '\n' ) {
|
||||
+ /* Add \n in case the line/file does not end with newline */
|
||||
+ line[len] = '\n';
|
||||
+ line[++len] = '\0';
|
||||
}
|
||||
- len = strlen( line );
|
||||
|
||||
if ( last_ch == '\n' ) {
|
||||
(*lno)++;
|
@ -31,6 +31,7 @@ Patch8: openldap-nss-nofork.patch
|
||||
Patch9: openldap-nss-cacertdir-soft-error.patch
|
||||
Patch10: openldap-ldapexop-double-free.patch
|
||||
Patch11: openldap-segfault-ldif-indent.patch
|
||||
Patch12: openladp-segfault-ldif-nl-end.patch
|
||||
|
||||
# patches for the evolution library (see README.evolution)
|
||||
Patch200: openldap-evolution-ntlm.patch
|
||||
@ -134,6 +135,7 @@ pushd openldap-%{version}
|
||||
%patch9 -p1 -b .nss-cacertdir-soft-error
|
||||
%patch10 -p1 -b .ldapexop-double-free
|
||||
%patch11 -p1 -b .segfault-ldif-indent
|
||||
%patch12 -p1 -b .segfault-ldif-nl-end
|
||||
|
||||
cp %{_datadir}/libtool/config/config.{sub,guess} build/
|
||||
|
||||
@ -667,6 +669,8 @@ exit 0
|
||||
- fix: segmentation fault caused by double-free in ldapexop (#699683)
|
||||
- fix: segmentation fault of client tool when input line in LDIF file
|
||||
is splitted but indented incorrectly (#716855)
|
||||
- fix: segmentation fault of client tool when LDIF input file is not terminated
|
||||
by a new line character (#716858)
|
||||
|
||||
* Fri Mar 18 2011 Jan Vcelak <jvcelak@redhat.com> 2.4.24-2
|
||||
- new: system resource limiting for slapd using ulimit
|
||||
|
Loading…
Reference in New Issue
Block a user