From bab758e93f70e34e0cf428b0b2041c523ee7956f Mon Sep 17 00:00:00 2001 From: biglyderv Date: Thu, 3 Apr 2025 13:46:08 -0400 Subject: [PATCH] avoid duping polls --- src/command.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/command.c b/src/command.c index e03572f..24a7776 100644 --- a/src/command.c +++ b/src/command.c @@ -80,7 +80,7 @@ int inv_handler(const void *key, size_t size, uintptr_t val, void *usr) { if (val2[strlen(val2) - 1] == '\n') { printf("- user:%s suggested %s", key3, val2); } else { - printf("- user:%s suggested %s\n", key3, val2); + printf("- user:%s suggested %s\n", key3, val2); } free(key3); @@ -103,21 +103,28 @@ int inv_handler(const void *key, size_t size, uintptr_t val, void *usr) { int polls_handler(const void *key, size_t size, uintptr_t val, void *usr) { struct verifier *verified = (struct verifier *)usr; - if (((char *)val)[strlen(((char *)val)) - 1] == '\n') { - ((char *)val)[strlen(((char *)val)) - 1] = '\0'; + char *val2 = (char *)val; + char *val3 = malloc(strlen(val2) + 1); + strcpy(val3, val2); + + if (val3[strlen(val3) - 1] == '\n') { + val3[strlen(val3) - 1] = '\0'; } if (strncmp(verified->name, key, strlen(verified->name)) == 0 && - strcmp(verified->sugg, (char *)val) == 0) + strcmp(verified->sugg, val3) == 0) { + free(val3); return -1; + } + free(val3); return 0; } int success_handler(const void *key, size_t size, uintptr_t val, void *usr) { struct succ *verified = (struct succ *)usr; - char *val2 = (char*) val; + char *val2 = (char *)val; if ((char *)val != verified->sugg && val2[strlen(val2) - 1] == '\n') { val2[strlen(val2) - 1] = '\0';