summaryrefslogtreecommitdiffstats
path: root/src/sss_client/sudo_plugin/sss_sudoplugin.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/sss_client/sudo_plugin/sss_sudoplugin.c')
-rw-r--r--src/sss_client/sudo_plugin/sss_sudoplugin.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/sss_client/sudo_plugin/sss_sudoplugin.c b/src/sss_client/sudo_plugin/sss_sudoplugin.c
index 9e2dfce0..3e5e2c08 100644
--- a/src/sss_client/sudo_plugin/sss_sudoplugin.c
+++ b/src/sss_client/sudo_plugin/sss_sudoplugin.c
@@ -347,15 +347,19 @@ errno_t policy_check_parse_response(char *response,
{
#define LOAD_ARRAY(element) do { \
i = 0; \
- while (*current_position != '\0') { \
- i++; \
- element = (char**)realloc(element, i * sizeof(char*)); \
- element[i - 1] = current_position; \
- current_position = strchr(current_position, '\0'); \
- if (current_position == NULL) { \
- ret = ESPIPE; \
- goto done; \
+ if (*current_position != '\0') { \
+ while (*current_position != '\0') { \
+ i++; \
+ element = (char**)realloc(element, i * sizeof(char*)); \
+ element[i - 1] = current_position; \
+ current_position = strchr(current_position, '\0'); \
+ if (current_position == NULL) { \
+ ret = ESPIPE; \
+ goto done; \
+ } \
+ current_position++; \
} \
+ } else { \
current_position++; \
} \
i++; \