if (!root_mounted || dir[0] != '/') {
cancel_receive ();
- reply_with_error ("tar-in: root must be mounted and path must be absolute");
+ reply_with_error ("root must be mounted and path must be absolute");
return -1;
}
if (pclose (fp) != 0) {
err = errno;
- cancel_receive ();
+ if (r == -1) /* if r == 0, file transfer ended already */
+ cancel_receive ();
errno = err;
reply_with_perror ("pclose: %s", dir);
return -1;
if (!root_mounted || dir[0] != '/') {
cancel_receive ();
- reply_with_error ("tar-in: root must be mounted and path must be absolute");
+ reply_with_error ("root must be mounted and path must be absolute");
return -1;
}
if (pclose (fp) != 0) {
err = errno;
- cancel_receive ();
+ if (r == -1) /* if r == 0, file transfer ended already */
+ cancel_receive ();
errno = err;
reply_with_perror ("pclose: %s", dir);
return -1;