From: Jaroslav Kysela Date: Tue, 26 Jul 2005 12:32:24 +0000 (+0000) Subject: Fix for segmentation fault in envy24control X-Git-Tag: v1.0.10rc1~8 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=961ee03200f51a5b2b83747ae297c52e8fb5807c;p=alsa-tools.git 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 --- 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++) {