commit - d947271fda9c2c8d82ecb1fd8693fb0f4f6cb1da
commit + f54c4c24c918de10964c89c400b6552516bb0069
blob - 4dd70040f303660e558e4a7e2642facf5201f746
blob + 76ce96aa12df9c6519f2f358e39234f59bb9be64
--- lib/worklist.c
+++ lib/worklist.c
#include <err.h>
#include <signal.h>
#include <stdlib.h>
+#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include "worklist.h"
-#include "xmalloc.h"
+#include "got_error.h"
/*
* adds a path to a worklist.
*/
-void
+const struct got_error *
worklist_add(const char *path, struct wklhead *worklist)
{
size_t len;
struct worklist *wkl;
sigset_t old, new;
- wkl = xcalloc(1, sizeof(*wkl));
+ wkl = calloc(1, sizeof(*wkl));
+ if (wkl == NULL)
+ return got_error_from_errno();
len = strlcpy(wkl->wkl_path, path, sizeof(wkl->wkl_path));
if (len >= sizeof(wkl->wkl_path))
- errx(1, "path truncation in worklist_add");
+ return got_error(GOT_ERR_NO_SPACE);
sigfillset(&new);
sigprocmask(SIG_BLOCK, &new, &old);
SLIST_INSERT_HEAD(worklist, wkl, wkl_list);
sigprocmask(SIG_SETMASK, &old, NULL);
+ return NULL;
}
/*
blob - cf833e8580b2166a59813087f96dbbb6f081cf01
blob + bb596178909cc2e981c297f5208f629d2327227f
--- lib/worklist.h
+++ lib/worklist.h
SLIST_HEAD(wklhead, worklist);
-void worklist_add(const char *, struct wklhead *);
+const struct got_error *worklist_add(const char *, struct wklhead *);
void worklist_run(struct wklhead *, void (*cb)(struct worklist *));
void worklist_clean(struct wklhead *, void (*cb)(struct worklist *));
void worklist_unlink(struct worklist *);
-extern struct wklhead temp_files;
-
#endif