dpward / rpms / sssd

Forked from rpms/sssd 3 years ago
Clone
Blob Blame History Raw
From 1c4109bf7f16016cf0b53cd73e7b80e0d87be660 Mon Sep 17 00:00:00 2001
From: Lukas Slebodnik <lslebodn@redhat.com>
Date: Mon, 24 Feb 2014 11:37:52 +0100
Subject: [PATCH 92/92] UTIL: Sanitize whitespaces.

Original patches submitted by: mpesari(Thanks!!)

It can cause problems if user will hit spaces before entering username.
(e.g in gdm). Spaces are ignored by LDAP; it's better to escape them.

Resolves:
https://fedorahosted.org/sssd/ticket/1955

Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>
(cherry picked from commit 2b8208b45feb2aab64d560d3e12e01e7b6d00d39)
---
 src/util/util.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/src/util/util.c b/src/util/util.c
index fb3bed146e2c634375a1133ef512673dee16718a..1ec5c2a9474b0cd2d19a50b495e218d1da7da6c8 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -537,6 +537,16 @@ errno_t sss_filter_sanitize(TALLOC_CTX *mem_ctx,
 
     while (input[i]) {
         switch(input[i]) {
+        case '\t':
+            output[j++] = '\\';
+            output[j++] = '0';
+            output[j++] = '9';
+            break;
+        case ' ':
+            output[j++] = '\\';
+            output[j++] = '2';
+            output[j++] = '0';
+            break;
         case '*':
             output[j++] = '\\';
             output[j++] = '2';
-- 
1.8.5.3