glibc/login
Florian Weimer 61d3db4281 login: pututxline could fail to overwrite existing entries [BZ #24902]
The internal_getut_r function updates the file_offset variable and
therefore must always update last_entry as well.

Previously, if pututxline could not upgrade the read lock to a
write lock, internal_getut_r would update file_offset only,
without updating last_entry, and a subsequent call would not
overwrite the existing utmpx entry at file_offset, instead
creating a new entry.  This has been observed to cause unbounded
file growth in high-load situations.

This commit removes the buffer argument to internal_getut_r and
updates the last_entry variable directly, along with file_offset.

Initially reported and fixed by Ondřej Lysoněk.

Reviewed-by: Gabriel F. T. Gomes <gabrielftg@linux.ibm.com>
2019-08-28 11:59:45 +02:00
..
programs login: Assume that _HAVE_UT_* constants are true 2019-08-13 12:09:32 +02:00
endutxent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
forkpty.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getlogin_r_chk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getlogin_r.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getlogin.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getpt.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getutent_r.c login: Remove utmp backend jump tables [BZ #23518] 2019-08-05 15:55:05 +02:00
getutent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getutid_r.c login: Assume that _HAVE_UT_* constants are true 2019-08-13 12:09:32 +02:00
getutid.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getutline_r.c login: Remove utmp backend jump tables [BZ #23518] 2019-08-05 15:55:05 +02:00
getutline.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getutmp.c login: Assume that _HAVE_UT_* constants are true 2019-08-13 12:09:32 +02:00
getutmpx.c login: Assume that _HAVE_UT_* constants are true 2019-08-13 12:09:32 +02:00
getutxent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getutxid.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
getutxline.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
grantpt.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
lastlog.h Update. 1997-06-21 02:59:26 +00:00
login_tty.c Convert 703 function definitions to prototype style. 2015-10-16 20:21:49 +00:00
login.c login: Assume that _HAVE_UT_* constants are true 2019-08-13 12:09:32 +02:00
logout.c login: Assume that _HAVE_UT_* constants are true 2019-08-13 12:09:32 +02:00
logwtmp.c login: Assume that _HAVE_UT_* constants are true 2019-08-13 12:09:32 +02:00
Makefile login: pututxline could fail to overwrite existing entries [BZ #24902] 2019-08-28 11:59:45 +02:00
openpty.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ptsname_r_chk.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
ptsname.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
pty.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
pututxline.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
setlogin.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
setutxent.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-getlogin.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-grantpt.c Modify several tests to use test-skeleton.c 2014-11-05 15:24:08 +05:30
tst-ptsname.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
tst-pututxline-lockfail.c login: pututxline could fail to overwrite existing entries [BZ #24902] 2019-08-28 11:59:45 +02:00
tst-updwtmpx.c login: Fix updwtmp, updwtmx unlocking 2019-08-15 10:30:23 +02:00
tst-utmp.c login: Assume that _HAVE_UT_* constants are true 2019-08-13 12:09:32 +02:00
tst-utmpx.c Update. 1998-06-02 12:58:14 +00:00
unlockpt.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
updwtmp.c login: Remove utmp backend jump tables [BZ #23518] 2019-08-05 15:55:05 +02:00
updwtmpx.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
utmp_file.c login: pututxline could fail to overwrite existing entries [BZ #24902] 2019-08-28 11:59:45 +02:00
utmp-private.h login: Remove utmp backend jump tables [BZ #23518] 2019-08-05 15:55:05 +02:00
utmp.h Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
utmpname.c login: Remove utmp backend jump tables [BZ #23518] 2019-08-05 15:55:05 +02:00
utmpxname.c Update copyright dates with scripts/update-copyrights. 2019-01-01 00:11:28 +00:00
Versions Move getlogin_r_chk to login/ subdir. 2013-05-06 15:58:44 -07:00