From 961ee03200f51a5b2b83747ae297c52e8fb5807c Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela Date: Tue, 26 Jul 2005 12:32:24 +0000 Subject: [PATCH] Fix for segmentation fault in envy24control a user has written he has a segmentation fault if he use the profiles management. He has used some older version of alsa-tools with previous FC releases until now and then this problem didn't exists. I have found a array boundary fault in my code for strstr_icase_blank(). From: Dirk Kalis --- envy24control/strstr_icase_blank.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/envy24control/strstr_icase_blank.c b/envy24control/strstr_icase_blank.c index d58a880..af44854 100644 --- a/envy24control/strstr_icase_blank.c +++ b/envy24control/strstr_icase_blank.c @@ -59,7 +59,7 @@ int strstr_icase_blank(const char * const string1, const char * const string2) { if ((pos_first_non_blank < 0) && (!isblank(search_string[i]))) pos_first_non_blank = i; - search_string[i] = toupper(search_string[i]); + search_string[i] = (char)toupper(search_string[i]); } // replace blanks in search string with SEP_CHAR to compare without blanks @@ -91,7 +91,7 @@ int strstr_icase_blank(const char * const string1, const char * const string2) while (position < strlen(string1)) { strncpy(line, (string1 + (position * sizeof(char))), MAX_SEARCH_FIELD_LENGTH); - line[MAX_SEARCH_FIELD_LENGTH] = '\0'; + line[MAX_SEARCH_FIELD_LENGTH - 1] = '\0'; pos_first_non_blank = -1; for (i = 0; i < strlen(line); i++) { -- 2.47.1