forked from pool/systemd
Marcus Meissner
2e1f7c4ae0
fix CVE-2015-7510: Stack overflow in nss-mymachines (boo#956712) OBS-URL: https://build.opensuse.org/request/show/346999 OBS-URL: https://build.opensuse.org/package/show/Base:System/systemd?expand=0&rev=921
38 lines
1.2 KiB
Diff
38 lines
1.2 KiB
Diff
From cb31827d62066a04b02111df3052949fda4b6888 Mon Sep 17 00:00:00 2001
|
|
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
|
|
Date: Mon, 23 Nov 2015 13:59:43 -0500
|
|
Subject: [PATCH] nss-mymachines: do not allow overlong machine names
|
|
|
|
https://github.com/systemd/systemd/issues/2002
|
|
---
|
|
src/nss-mymachines/nss-mymachines.c | 6 ++++++
|
|
1 file changed, 6 insertions(+)
|
|
|
|
diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
|
|
index 969fa96..c98a959 100644
|
|
--- a/src/nss-mymachines/nss-mymachines.c
|
|
+++ b/src/nss-mymachines/nss-mymachines.c
|
|
@@ -416,6 +416,9 @@ enum nss_status _nss_mymachines_getpwnam_r(
|
|
if (!e || e == p)
|
|
goto not_found;
|
|
|
|
+ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */
|
|
+ goto not_found;
|
|
+
|
|
r = parse_uid(e + 1, &uid);
|
|
if (r < 0)
|
|
goto not_found;
|
|
@@ -573,6 +576,9 @@ enum nss_status _nss_mymachines_getgrnam_r(
|
|
if (!e || e == p)
|
|
goto not_found;
|
|
|
|
+ if (e - p > HOST_NAME_MAX - 1) /* -1 for the last dash */
|
|
+ goto not_found;
|
|
+
|
|
r = parse_gid(e + 1, &gid);
|
|
if (r < 0)
|
|
goto not_found;
|
|
--
|
|
2.1.4
|
|
|