Commit Diff


commit - 27a741e587dcb761092cf3dd3d674192040b6390
commit + 25dced9b436467b3d008cf5e63d7414cd6ea7239
blob - f765f02f02a5448996609a862e8e4cbf2aa56f55
blob + bbdcd9dec7b562afc193a198bc06d504664e2e6f
--- lib/worklist.c
+++ lib/worklist.c
@@ -51,8 +51,10 @@ worklist_add(const char *path, struct wklhead *worklis
 		return got_error_from_errno("calloc");
 
 	len = strlcpy(wkl->wkl_path, path, sizeof(wkl->wkl_path));
-	if (len >= sizeof(wkl->wkl_path))
+	if (len >= sizeof(wkl->wkl_path)) {
+		free(wkl);
 		return got_error(GOT_ERR_NO_SPACE);
+	}
 
 	sigfillset(&new);
 	sigprocmask(SIG_BLOCK, &new, &old);