Check return value from rename(), fall back to truncate() on error
@@ -86,7 +86,9 @@ static int logrotate(char *file, int num, off_t sz)
}
}
- rename(file, nfile);
+ if (rename(file, nfile))
+ (void)truncate(file, 0);
+ else
create(file, st.st_mode, st.st_uid, st.st_gid);
} else {
if (truncate(file, 0))
