u_int32_t offset = len;
size_t data_retrieved = len;
while (data_retrieved < size) {
- len = getxattr(path, name, value + offset, size - data_retrieved, offset, XATTR_NOFOLLOW);
+ len = getxattr(path, name, (char*)value + offset, size - data_retrieved, offset, XATTR_NOFOLLOW);
if (len <= 0)
break;
data_retrieved += len;
} else {
size_t bufpos;
for (bufpos = 0; bufpos < sb.st_size; ) {
- ssize_t cnt = read(attrfd, buf + bufpos, sb.st_size - bufpos);
+ ssize_t cnt = read(attrfd, (char*)buf + bufpos, sb.st_size - bufpos);
if (cnt <= 0) {
if (cnt < 0 && errno == EINTR)
continue;
return -1;
for (bufpos = 0; bufpos < size; ) {
- ssize_t cnt = write(attrfd, value+bufpos, size);
+ ssize_t cnt = write(attrfd, (char*)value + bufpos, size);
if (cnt <= 0) {
if (cnt < 0 && errno == EINTR)
continue;
&& (dp->d_name[10] == 'o' || dp->d_name[10] == 'w'))
continue;
- if ((ret += len+1) > size) {
+ ret += len + 1;
+ if ((size_t)ret > size) {
if (size == 0)
continue;
ret = -1;