diff --git a/libutil/cp.c b/libutil/cp.c index 9bb517a..a8db0a2 100644 --- a/libutil/cp.c +++ b/libutil/cp.c @@ -79,6 +79,7 @@ cp(const char *s1, const char *s2, int depth) if (mkdir(s2, st.st_mode) < 0 && errno != EEXIST) { weprintf("mkdir %s:", s2); cp_status = 1; + closedir(dp); return 0; } @@ -122,15 +123,18 @@ cp(const char *s1, const char *s2, int depth) if (unlink(s2) < 0 && errno != ENOENT) { weprintf("unlink %s:", s2); cp_status = 1; + fclose(f1); return 0; } else if (!(f2 = fopen(s2, "w"))) { weprintf("fopen %s:", s2); cp_status = 1; + fclose(f1); return 0; } } else { weprintf("fopen %s:", s2); cp_status = 1; + fclose(f1); return 0; } }