summaryrefslogtreecommitdiffstats
path: root/src/responder/nss/nsssrv_cmd.c
diff options
context:
space:
mode:
authorStephen Gallagher <sgallagh@redhat.com>2011-11-18 12:28:55 -0500
committerStephen Gallagher <sgallagh@redhat.com>2011-12-05 13:49:40 -0500
commit46dfa69060f22a443d4ad9d2bf34441ff1adf2d3 (patch)
treefe4e06ce69fb49cb6295b0b18bb3a07cb2fca81e /src/responder/nss/nsssrv_cmd.c
parent2476cbaad1a5a5ac36a02b7a5fddb33c5139b76a (diff)
downloadsssd-46dfa69060f22a443d4ad9d2bf34441ff1adf2d3.tar.gz
sssd-46dfa69060f22a443d4ad9d2bf34441ff1adf2d3.tar.xz
sssd-46dfa69060f22a443d4ad9d2bf34441ff1adf2d3.zip
RESPONDER: Ensure that all input strings are valid UTF-8
Diffstat (limited to 'src/responder/nss/nsssrv_cmd.c')
-rw-r--r--src/responder/nss/nsssrv_cmd.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/responder/nss/nsssrv_cmd.c b/src/responder/nss/nsssrv_cmd.c
index 2aa7a9126..31a47210d 100644
--- a/src/responder/nss/nsssrv_cmd.c
+++ b/src/responder/nss/nsssrv_cmd.c
@@ -873,6 +873,13 @@ static int nss_cmd_getpwnam(struct cli_ctx *cctx)
ret = EINVAL;
goto done;
}
+
+ /* If the body isn't valid UTF-8, fail */
+ if (!sss_utf8_check(body, blen)) {
+ ret = EINVAL;
+ goto done;
+ }
+
rawname = (const char *)body;
domname = NULL;
@@ -2140,6 +2147,13 @@ static int nss_cmd_getgrnam(struct cli_ctx *cctx)
ret = EINVAL;
goto done;
}
+
+ /* If the body isn't valid UTF-8, fail */
+ if (!sss_utf8_check(body, blen)) {
+ ret = EINVAL;
+ goto done;
+ }
+
rawname = (const char *)body;
domname = NULL;
@@ -3180,6 +3194,13 @@ static int nss_cmd_initgroups(struct cli_ctx *cctx)
ret = EINVAL;
goto done;
}
+
+ /* If the body isn't valid UTF-8, fail */
+ if (!sss_utf8_check(body, blen)) {
+ ret = EINVAL;
+ goto done;
+ }
+
rawname = (const char *)body;
domname = NULL;