diff --git a/modules/sep.c b/modules/sep.c index 29df414..b4284d7 100644 --- a/modules/sep.c +++ b/modules/sep.c @@ -18,24 +18,24 @@ uint8_t version_patch(void) { return 0; } const char *module_name(void) { return "sep"; } static size_t length = 8; -static char *sep_char = "-"; +static char *sep_char = (char[]){'-', '\0'}; static size_t sep_char_length = 1; void init(char **config) { - for(char *opt = *config; opt != NULL; opt = *++config) { - if(!strncmp(opt, "sep", 3)) { + for (char *opt = *config; opt != NULL; opt = *++config) { + if (strncmp(opt, "sep", 3) == 0) { char *valstr = opt + 4; // skip 'sep=' long value = strtol(valstr, NULL, 10); - if(value >= 0) { + if (value >= 0) { length = (size_t) value; } - } else if(!strncmp(opt, "char", 4)) { + } else if (strncmp(opt, "char", 4) == 0) { char *value = opt + 5; // skip 'char=' - if(*value != 0) { // todo: see if there are any more characters that should be rejected + if (*value != 0) { // todo: see if there are any more characters that should be rejected sep_char_length = strlen(value); - sep_char = malloc(sep_char_length + 1); + sep_char = malloc((sep_char_length + 1) * sizeof(*sep_char)); strncpy(sep_char, value, sep_char_length); sep_char[sep_char_length] = '\0'; } else { @@ -48,16 +48,16 @@ void init(char **config) { const char *get(void) { char *ret; - if(sep_char == NULL) { - ret = malloc(1); + if (sep_char == NULL) { + ret = malloc(1 * sizeof(*ret)); *ret = 0; return ret; } - ret = malloc(length * sep_char_length + 1); + ret = malloc((length * sep_char_length + 1) * sizeof(*ret)); memset(ret, 0, length * sep_char_length + 1); - for(size_t i = 0; i < length; i++) + for (size_t i = 0; i < length; i++) strncat(ret, sep_char, sep_char_length); ret[length * sep_char_length] = '\0'; // just to be sure :-D