If the --partial-dir value is an absolute path and we use a file in
[rsync/rsync.git] / receiver.c
index 663b1c0..b6215fb 100644 (file)
@@ -15,9 +15,9 @@
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
  */
 
 #include "rsync.h"
@@ -617,9 +617,14 @@ int recv_files(int f_in, struct file_list *flist, char *local_name)
                }
 
                if ((recv_ok && (!delay_updates || !partialptr)) || inplace) {
-                       if (partialptr == fname || *partial_dir == '/')
-                               partialptr = NULL;
-                       finish_transfer(fname, fnametmp, partialptr,
+                       char *temp_copy_name;
+                       if (partialptr == fname)
+                               partialptr = temp_copy_name = NULL;
+                       else if (*partial_dir == '/')
+                               temp_copy_name = NULL;
+                       else
+                               temp_copy_name = partialptr;
+                       finish_transfer(fname, fnametmp, temp_copy_name,
                                        file, recv_ok, 1);
                        if (fnamecmp == partialptr) {
                                do_unlink(partialptr);