Samanta Navarro 1c6a1206bd
lib/sgetgrent.c: fix null pointer dereference
If reallocation fails in function list, then reset the size to 0 again.
Without the reset, the next call assumes that `members` points to
a memory location with reserved space.

Also use size_t instead of int for size to prevent signed integer
overflows. The length of group lines is not limited.

Fixes 45c0003e53ab671c63dcd530fd9f3245d3b29e76 (4.14 release series)

Proof of Concept:

-  Prepare a group file (one long group line and a shorter one, both with a list of users)

	$ echo -n "root0:" > /tmp/uwu
	$ yes , | tr -d '\n' | dd of=/tmp/uwu bs=10 count=3145728 seek=1 conv=notrunc iflag=fullblock
	$ echo -e "\nbin1:," >> /tmp/uwu

-  Run grpck with tight memory constraints

	$ ulimit -d 102400
	$ grpck /tmp/uwu
	Segmentation fault (core dumped)

Reviewed-by: Alejandro Colomar <alx@kernel.org>
Signed-off-by: Samanta Navarro <ferivoz@riseup.net>
Cherry-picked-from: a9e07c0feb43 ("lib/sgetgrent.c: fix null pointer dereference")
Link: <https://github.com/shadow-maint/shadow/pull/904>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
2024-01-16 00:00:43 +01:00
..
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-06-08 09:05:39 -05:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-02-24 12:44:14 -06:00
2023-10-30 00:00:15 +01:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-08-04 17:15:42 -05:00
2022-12-29 13:58:49 -06:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2021-12-23 19:36:50 -06:00
2021-12-23 19:36:50 -06:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-03-31 09:53:40 -05:00
2021-12-23 19:36:50 -06:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-02-09 10:03:03 -06:00
2023-02-09 10:03:03 -06:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-06-08 09:05:39 -05:00
2021-12-23 19:36:50 -06:00
2021-12-23 19:36:50 -06:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2021-12-23 19:36:50 -06:00
2023-06-08 09:05:39 -05:00
2021-12-23 19:36:50 -06:00
2023-06-08 09:05:39 -05:00
2021-12-23 19:36:50 -06:00
2023-06-08 09:05:39 -05:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2022-12-22 11:43:29 +01:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-02-16 11:29:33 +01:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2022-12-22 11:43:29 +01:00
2023-06-08 09:05:39 -05:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2021-12-23 19:36:50 -06:00
2023-09-10 14:13:01 +02:00
2022-12-22 11:43:29 +01:00
2022-05-24 07:49:11 -05:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-02-09 10:03:03 -06:00
2021-12-23 19:36:50 -06:00
2023-02-23 20:28:43 -06:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-06-08 09:05:39 -05:00
2022-05-24 07:49:11 -05:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2022-12-22 11:43:29 +01:00
2023-06-08 09:05:39 -05:00
2021-12-23 19:36:50 -06:00
2023-02-09 10:03:03 -06:00
2023-02-09 10:03:03 -06:00
2021-12-23 19:36:50 -06:00
2023-01-26 22:44:39 -06:00
2023-02-23 20:28:43 -06:00
2023-09-10 14:13:01 +02:00
2023-06-08 09:05:39 -05:00
2023-02-16 11:29:33 +01:00
2023-02-16 11:29:33 +01:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-06-08 09:05:39 -05:00
2023-09-10 14:13:01 +02:00
2023-02-09 10:03:03 -06:00
2010-03-18 19:23:00 +00:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-08-04 17:15:42 -05:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00
2023-09-10 14:13:01 +02:00