|
@@ -108,6 +108,7 @@ dump_microdescriptor(int fd, microdesc_t *md, size_t *annotation_len_out)
|
|
|
md->off = tor_fd_getpos(fd);
|
|
|
written = write_all(fd, md->body, md->bodylen, 0);
|
|
|
if (written != (ssize_t)md->bodylen) {
|
|
|
+ written = written < 0 ? 0 : written;
|
|
|
log_warn(LD_DIR,
|
|
|
"Couldn't dump microdescriptor (wrote %ld out of %lu): %s",
|
|
|
(long)written, (unsigned long)md->bodylen,
|