* This should recreate 0 byte attributes, and therefore fix bug #4015.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31000 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -153,15 +153,17 @@ copy_attributes(int fromFd, int toFd)
|
|||||||
if (fs_stat_attr(fromFd, dirent->d_name, &info) != 0)
|
if (fs_stat_attr(fromFd, dirent->d_name, &info) != 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
while (info.size > 0) {
|
while (info.size >= 0) {
|
||||||
ssize_t bytesRead, bytesWritten;
|
ssize_t bytesRead, bytesWritten;
|
||||||
|
|
||||||
bytesRead = fs_read_attr(fromFd, dirent->d_name, info.type, pos, buffer, sizeof(buffer));
|
bytesRead = fs_read_attr(fromFd, dirent->d_name, info.type, pos,
|
||||||
if (bytesRead <= 0)
|
buffer, sizeof(buffer));
|
||||||
|
if (bytesRead < 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
bytesWritten = fs_write_attr(toFd, dirent->d_name, info.type, pos, buffer, bytesRead);
|
bytesWritten = fs_write_attr(toFd, dirent->d_name, info.type, pos,
|
||||||
if (bytesWritten != bytesRead)
|
buffer, bytesRead);
|
||||||
|
if (bytesWritten != bytesRead || bytesRead == 0)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
pos += bytesWritten;
|
pos += bytesWritten;
|
||||||
|
|||||||
Reference in New Issue
Block a user