diff options
author | Andreas Schwab <schwab@suse.de> | 2014-06-23 10:24:45 +0200 |
---|---|---|
committer | Andreas Schwab <schwab@suse.de> | 2014-06-23 12:29:51 +0200 |
commit | ac60763eac3d43b7234dd21286ad3ec3f17957fc (patch) | |
tree | ae02d85e705b69513ef85cd7f452b35c40f7d278 | |
parent | c5c13355132e73578bbc0c612ddff964e6199747 (diff) | |
download | glibc-ac60763eac3d43b7234dd21286ad3ec3f17957fc.tar glibc-ac60763eac3d43b7234dd21286ad3ec3f17957fc.tar.gz glibc-ac60763eac3d43b7234dd21286ad3ec3f17957fc.tar.bz2 glibc-ac60763eac3d43b7234dd21286ad3ec3f17957fc.zip |
Don't ignore too long lines in nss_files (BZ #17079)
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | nss/nss_files/files-XXX.c | 4 |
3 files changed, 10 insertions, 2 deletions
@@ -1,3 +1,9 @@ +2014-06-23 Andreas Schwab <schwab@suse.de> + + [BZ #17079] + * nss/nss_files/files-XXX.c (get_contents): Store overflow marker + before reading the next line. + 2014-06-23 Will Newton <will.newton@linaro.org> * test-skeleton.c (signal_handler): Use printf and %m @@ -20,7 +20,7 @@ Version 2.20 16854, 16876, 16877, 16878, 16882, 16885, 16888, 16890, 16912, 16915, 16916, 16917, 16922, 16927, 16928, 16932, 16943, 16958, 16965, 16966, 16967, 16977, 16978, 16984, 16990, 16996, 17009, 17022, 17031, 17042, - 17048, 17058, 17062, 17069, 17075. + 17048, 17058, 17062, 17069, 17075, 17079. * Optimized strchr implementation for AArch64. Contributed by ARM Ltd. diff --git a/nss/nss_files/files-XXX.c b/nss/nss_files/files-XXX.c index 00b2ecf612..212b938fdf 100644 --- a/nss/nss_files/files-XXX.c +++ b/nss/nss_files/files-XXX.c @@ -198,10 +198,12 @@ get_contents (char *linebuf, size_t len, FILE *stream) { int curlen = ((remaining_len > (size_t) INT_MAX) ? INT_MAX : remaining_len); - char *p = fgets_unlocked (curbuf, curlen, stream); + /* Terminate the line so that we can test for overflow. */ ((unsigned char *) curbuf)[curlen - 1] = 0xff; + char *p = fgets_unlocked (curbuf, curlen, stream); + /* EOF or read error. */ if (p == NULL) return gcr_error; |