commit 83814a220fb70db8344469dc3e2db5357b36fc5c Author: Jan Vcelak 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)++;