]> git.ozlabs.org Git - ccan/blobdiff - tools/ccanlint/tests/module_builds.c
ccanlint: avoid segfault when module_builds' linking fails
[ccan] / tools / ccanlint / tests / module_builds.c
index cffb84bce34038db9e62beeb933550e4ab6e5ab9..cb13a0b63e6a53933705d9e3370f9237d8243238 100644 (file)
@@ -1,7 +1,7 @@
 #include <tools/ccanlint/ccanlint.h>
 #include <tools/tools.h>
-#include <ccan/talloc/talloc.h>
 #include <ccan/str/str.h>
+#include <ccan/take/take.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <fcntl.h>
@@ -24,14 +24,14 @@ static const char *can_build(struct manifest *m)
 
 static char *obj_list(const struct manifest *m, enum compile_type ctype)
 {
-       char *list = talloc_strdup(m, "");
+       char *list = tal_strdup(m, "");
        struct ccan_file *i;
 
        /* Objects from all the C files. */
-       list_for_each(&m->c_files, i, list)
-               list = talloc_asprintf_append(list, "%s ",
-                                             i->compiled[ctype]);
-
+       list_for_each(&m->c_files, i, list) {
+               list = tal_strcat(m, take(list), i->compiled[ctype]);
+               list = tal_strcat(m, take(list), " ");
+       }
        return list;
 }
 
@@ -57,7 +57,7 @@ static void do_build(struct manifest *m,
        m->compiled[COMPILE_NORMAL]
                = build_module(m, COMPILE_NORMAL, &errstr);
        if (!m->compiled[COMPILE_NORMAL]) {
-               score_file_error(score, NULL, 0, "%s", errstr);
+               score_error(score, m->modname,"%s", errstr);
                return;
        }