Fix buffer overflow in rc_mksid()

rc_mksid converts the PID of pppd to hex to generate a pseudo-unique string.

If the process id is bigger than 65535 (FFFF), its hex representation will be
longer than 4 characters, resulting in a buffer overflow.

The bug can be exploited to cause a remote DoS.

Bug-Debian: https://bugs.debian.org/782450
Last-Update: <2015-04-14>

Gbp-Pq: Name rc_mksid-no-buffer-overflow
This commit is contained in:
Emanuele Rocca 2022-05-14 02:43:52 +08:00 committed by openKylinBot
parent c343611431
commit d896af655c
1 changed files with 1 additions and 1 deletions

View File

@ -77,7 +77,7 @@ rc_mksid (void)
static unsigned short int cnt = 0;
sprintf (buf, "%08lX%04X%02hX",
(unsigned long int) time (NULL),
(unsigned int) getpid (),
(unsigned int) getpid () % 65535,
cnt & 0xFF);
cnt++;
return buf;