]> git.ipfire.org Git - thirdparty/mlmmj.git/commitdiff
Fix genlistname regression and add a test
authorBaptiste Daroussin <bapt@FreeBSD.org>
Mon, 26 Dec 2022 15:26:53 +0000 (16:26 +0100)
committerBaptiste Daroussin <bapt@FreeBSD.org>
Mon, 26 Dec 2022 15:42:44 +0000 (16:42 +0100)
src/strgen.c
tests/mlmmj.c

index ee5acf27a946607cb678769809b42ffa3442ea53..83cadc896bab1e71db7bbc173402449719bab528 100644 (file)
@@ -59,14 +59,11 @@ char *headerstr(const char *headertoken, const char *str)
 
 char *genlistname(const char *listaddr)
 {
-       char *dest, *atsign;
+       const char *atsign;
 
        atsign = strchr(listaddr, '@');
        MY_ASSERT(atsign);
-       
-       xasprintf(&dest, "%s", listaddr);
-
-       return dest;
+       return (xstrndup(listaddr, atsign - listaddr));
 }
 
 char *genlistfqdn(const char *listaddr)
index 683456cc1625a96fdb70983c243250505abe774e..13674a97498e76f79dcb721cf25301166b60acaa 100644 (file)
@@ -36,6 +36,7 @@
 #include <limits.h>
 #include <errno.h>
 
+#include "atf-c/macros.h"
 #include "xmalloc.h"
 #include "wrappers.h"
 #include "chomp.h"
@@ -75,6 +76,7 @@ ATF_TC_WITHOUT_HEAD(parse_lastdigest);
 ATF_TC_WITHOUT_HEAD(extract_bouncetime);
 ATF_TC_WITHOUT_HEAD(open_subscriber_directory);
 ATF_TC_WITHOUT_HEAD(unsubscribe);
+ATF_TC_WITHOUT_HEAD(genlistname);
 
 #ifndef NELEM
 #define NELEM(array)    (sizeof(array) / sizeof((array)[0]))
@@ -919,6 +921,19 @@ ATF_TC_BODY(unsubscribe, tc)
 
 }
 
+ATF_TC_BODY(genlistname, tc)
+{
+       char *ret;
+
+       ret = genlistname("plop@bla");
+       ATF_REQUIRE_STREQ(ret, "plop");
+       free(ret);
+
+       ret = genlistname("plop@bla@meh");
+       ATF_REQUIRE_STREQ(ret, "plop");
+       free(ret);
+}
+
 ATF_TP_ADD_TCS(tp)
 {
        ATF_TP_ADD_TC(tp, random_int);
@@ -949,6 +964,7 @@ ATF_TP_ADD_TCS(tp)
        ATF_TP_ADD_TC(tp, extract_bouncetime);
        ATF_TP_ADD_TC(tp, open_subscriber_directory);
        ATF_TP_ADD_TC(tp, unsubscribe);
+       ATF_TP_ADD_TC(tp, genlistname);
 
        return (atf_no_error());
 }