| line | true | false | branch | 
 
| 64 | 0 | 0 | if ( writeOldStyleAttribFile >= 0 ) WriteOldStyleAttribFile = writeOldStyleAttribFile; | 
 
| 65 | 0 | 0 | if ( keepOldAttribFiles >= 0 )      KeepOldAttribFiles = keepOldAttribFiles; | 
 
| 66 | 0 | 0 | if ( BPC_LogLevel >= 5 ) { | 
 
| 91 | 0 | 0 | if ( xattr->key.key ) free(xattr->key.key); | 
 
| 92 | 0 | 0 | if ( xattr->value )   free(xattr->value); | 
 
| 99 | 0 | 0 | if ( !xattr ) return -1; | 
 
| 127 | 0 | 0 | if ( ((char*)key)[keyLen - 1] != 0x0 ) { | 
 
| 128 | 0 | 0 | if ( keyLen >= BPC_MAXPATHLEN - 8 ) { | 
 
| 135 | 0 | 0 | if ( BPC_LogLevel >= 6 ) { | 
 
| 142 | 0 | 0 | if ( !xattr->value ) { | 
 
| 146 | 0 | 0 | if ( !(xattr->key.key = malloc(keyLen)) ) { | 
 
| 156 | 0 | 0 | if ( valueLen > xattr->valueLen ) { | 
 
| 159 | 0 | 0 | } else if ( valueLen == xattr->valueLen && !memcmp(xattr->value, value, valueLen) ) { | 
 
|  | 0 | 0 | } else if ( valueLen == xattr->valueLen && !memcmp(xattr->value, value, valueLen) ) { | 
 
| 166 | 0 | 0 | if ( !xattr->value && !(xattr->value = malloc(valueLen)) ) { | 
 
|  | 0 | 0 | if ( !xattr->value && !(xattr->value = malloc(valueLen)) ) { | 
 
| 178 | 0 | 0 | uchar *key   = (uchar*)malloc(xattrSrc->key.keyLen > 0 ? xattrSrc->key.keyLen : 1); | 
 
| 179 | 0 | 0 | uchar *value = (uchar*)malloc(xattrSrc->valueLen > 0 ? xattrSrc->valueLen : 1); | 
 
| 181 | 0 | 0 | if ( !key || !value ) { | 
 
|  | 0 | 0 | if ( !key || !value ) { | 
 
| 191 | 0 | 0 | if ( xattr->value ) { | 
 
| 217 | 0 | 0 | if ( info->idx < 0 ) return; | 
 
| 219 | 0 | 0 | if ( info->ignoreRsyncACLs ) { | 
 
| 229 | 0 | 0 | for ( i = 0 ; i < sizeof(ignoreKeys) / sizeof(ignoreKeys[0]) ; i++ ) { | 
 
| 230 | 0 | 0 | if ( xattr->key.keyLen == ignoreKeys[i].len | 
 
| 231 | 0 | 0 | && !memcmp(xattr->key.key, ignoreKeys[i].str, xattr->key.keyLen) ) { | 
 
| 236 | 0 | 0 | if ( info->list ) { | 
 
| 237 | 0 | 0 | if ( info->idx + (signed)xattr->key.keyLen > info->listLen ) { | 
 
| 245 | 0 | 0 | if ( xattr->key.keyLen >= 1 && info->list[info->idx + xattr->key.keyLen - 1] != 0x0 ) { | 
 
|  | 0 | 0 | if ( xattr->key.keyLen >= 1 && info->list[info->idx + xattr->key.keyLen - 1] != 0x0 ) { | 
 
| 249 | 0 | 0 | if ( BPC_LogLevel >= 6 ) bpc_logMsgf("bpc_attrib_xattrListKey: adding %s\n", info->list + info->idx); | 
 
| 277 | 0 | 0 | if ( file->name) free(file->name); | 
 
| 300 | 0 | 0 | if ( file->name ) bpc_attrib_fileDestroy(file); | 
 
| 302 | 0 | 0 | if ( !file->name ) { | 
 
| 321 | 0 | 0 | if ( fileDest == fileSrc ) return; | 
 
| 334 | 0 | 0 | if ( fileSrc->digest.len > 0 || overwriteEmptyDigest ) { | 
 
|  | 0 | 0 | if ( fileSrc->digest.len > 0 || overwriteEmptyDigest ) { | 
 
| 349 | 0 | 0 | if ( fileDest == fileSrc ) return; | 
 
| 361 | 0 | 0 | if ( file0->type != file1->type | 
 
| 362 | 0 | 0 | || file0->compress   != file1->compress | 
 
| 363 | 0 | 0 | || file0->mode       != file1->mode | 
 
| 364 | 0 | 0 | || file0->uid        != file1->uid | 
 
| 365 | 0 | 0 | || file0->gid        != file1->gid | 
 
| 366 | 0 | 0 | || file0->nlinks     != file1->nlinks | 
 
| 367 | 0 | 0 | || file0->mtime      != file1->mtime | 
 
| 368 | 0 | 0 | || file0->size       != file1->size | 
 
| 369 | 0 | 0 | || file0->inode      != file1->inode | 
 
| 370 | 0 | 0 | || file0->digest.len != file1->digest.len | 
 
| 371 | 0 | 0 | || memcmp(file0->digest.digest, file1->digest.digest, file0->digest.len) | 
 
| 372 | 0 | 0 | || bpc_attrib_xattrCount(file0) != bpc_attrib_xattrCount(file1) ) { | 
 
| 373 | 0 | 0 | if ( BPC_LogLevel >= 9 ) bpc_logMsgf("bpc_attrib_fileCompare: %s %s differ\n", file0->name, file1->name); | 
 
| 378 | 0 | 0 | if ( !xattr0 ) return 0; | 
 
| 379 | 0 | 0 | if ( !(xattr1 = bpc_attrib_xattrGet(file1, xattr0->key.key, xattr0->key.keyLen, 0)) ) return 1; | 
 
| 380 | 0 | 0 | if ( xattr0->valueLen != xattr1->valueLen || memcmp(xattr0->value, xattr1->value, xattr0->valueLen) ) return 1; | 
 
|  | 0 | 0 | if ( xattr0->valueLen != xattr1->valueLen || memcmp(xattr0->value, xattr1->value, xattr0->valueLen) ) return 1; | 
 
| 388 | 0 | 0 | if ( !file ) return; | 
 
| 396 | 0 | 0 | if ( !*file ) return -1; | 
 
| 407 | 0 | 0 | if ( type < 0 || type >= (int)(sizeof(FileType2Text) / sizeof(FileType2Text[0])) ) return "?"; | 
 
|  | 0 | 0 | if ( type < 0 || type >= (int)(sizeof(FileType2Text) / sizeof(FileType2Text[0])) ) return "?"; | 
 
| 438 | 0 | 0 | if ( file->digest.len > 0 ) { | 
 
| 441 | 0 | 0 | if ( BPC_LogLevel >= 7 ) bpc_logMsgf("bpc_attrib_fileRefCount: file %s digest %s delta %d\n", file->name, hexStr, info->incr); | 
 
| 444 | 0 | 0 | if ( info->inodeMax && file->inode > *info->inodeMax ) { | 
 
|  | 0 | 0 | if ( info->inodeMax && file->inode > *info->inodeMax ) { | 
 
| 461 | 0 | 0 | if ( dir->digest.len > 0 ) { | 
 
| 464 | 0 | 0 | if ( BPC_LogLevel >= 7 ) bpc_logMsgf("bpc_attrib_dirRefCount: attrib digest %s delta = %d\n", hexStr, incr); | 
 
| 467 | 0 | 0 | if ( BPC_LogLevel >= 7 ) bpc_logMsgf("bpc_attrib_dirRefCount: no attrib digest -> no delta\n"); | 
 
| 490 | 0 | 0 | if ( info->entryIdx < 0 ) return; | 
 
| 491 | 0 | 0 | if ( info->entries ) { | 
 
| 492 | 0 | 0 | if ( info->entryIdx + len > info->entrySize ) { | 
 
| 515 | 0 | 0 | if ( !dir ) { | 
 
| 518 | 0 | 0 | snprintf(path, BPC_MAXPATHLEN, "%s/%s", dir, attribFileName ? attribFileName : "attrib"); | 
 
| 537 | 0 | 0 | if ( thisRead < 0 ) { | 
 
| 554 | 0 | 0 | while ( bufP < bufEnd ) { | 
 
| 557 | 0 | 0 | if ( !(c & 0x80) ) { | 
 
| 580 | 0 | 0 | while ( bufP < bufEnd ) { | 
 
| 583 | 0 | 0 | if ( !(c & 0x80) ) { | 
 
| 609 | 0 | 0 | if ( value && maxBytes > 0 ) c |= 0x80; | 
 
|  | 0 | 0 | if ( value && maxBytes > 0 ) c |= 0x80; | 
 
| 610 | 0 | 0 | if ( bufP < bufEnd ) { | 
 
| 615 | 0 | 0 | } while ( value && maxBytes > 0 ); | 
 
|  | 0 | 0 | } while ( value && maxBytes > 0 ); | 
 
| 643 | 0 | 0 | if ( file->digest.len > 0 && bufP + file->digest.len <= bufEnd ) { | 
 
|  | 0 | 0 | if ( file->digest.len > 0 && bufP + file->digest.len <= bufEnd ) { | 
 
| 648 | 0 | 0 | for ( i = 0 ; i < xattrNumEntries ; i++ ) { | 
 
| 652 | 0 | 0 | if ( bufP + keyLen + valueLen <= bufEnd ) { | 
 
| 653 | 0 | 0 | if ( xattrFixup && bufP[keyLen - 1] != 0x0 ) { | 
 
|  | 0 | 0 | if ( xattrFixup && bufP[keyLen - 1] != 0x0 ) { | 
 
| 677 | 0 | 0 | if ( fileNameLen > BPC_MAXPATHLEN - 1 ) { | 
 
| 684 | 0 | 0 | if ( BPC_LogLevel >= 6 ) bpc_logMsgf("bpc_attrib_buf2fileFull: xattrNumEntries = %d\n", xattrNumEntries); | 
 
| 709 | 0 | 0 | if ( (attribFileName = strrchr(attribFilePath, '/')) ) { | 
 
| 715 | 0 | 0 | if ( BPC_LogLevel >= 6 ) bpc_logMsgf("bpc_attrib_dirRead(%s); dirPath = %s, attribFilePath = %s, attribFileName = %s\n", | 
 
| 718 | 0 | 0 | if ( (p = strchr(attribFileName, '_')) && !stat(attribPath, &st) && S_ISREG(st.st_mode) ) { | 
 
|  | 0 | 0 | if ( (p = strchr(attribFileName, '_')) && !stat(attribPath, &st) && S_ISREG(st.st_mode) ) { | 
 
|  | 0 | 0 | if ( (p = strchr(attribFileName, '_')) && !stat(attribPath, &st) && S_ISREG(st.st_mode) ) { | 
 
| 722 | 0 | 0 | if ( !strcmp(p + 1, "0") ) return 0; | 
 
| 724 | 0 | 0 | if ( BPC_LogLevel >= 6 ) { | 
 
| 735 | 0 | 0 | } else if ( stat(attribPath, &st) || !S_ISREG(st.st_mode) || strchr(attribFileName, '_') ) { | 
 
|  | 0 | 0 | } else if ( stat(attribPath, &st) || !S_ISREG(st.st_mode) || strchr(attribFileName, '_') ) { | 
 
|  | 0 | 0 | } else if ( stat(attribPath, &st) || !S_ISREG(st.st_mode) || strchr(attribFileName, '_') ) { | 
 
| 746 | 0 | 0 | if ( (p = strrchr(attribDirPath, '/')) ) { | 
 
| 751 | 0 | 0 | if ( !(dirOs = opendir(attribDirPath)) ) { | 
 
| 755 | 0 | 0 | if ( BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirRead: can't opendir %s (note: this is ok)\n", attribDirPath); | 
 
| 758 | 0 | 0 | while ( (dp = readdir(dirOs)) ) { | 
 
| 759 | 0 | 0 | if ( strncmp(dp->d_name, attribFileName, attribFileNameLen) ) continue; | 
 
| 761 | 0 | 0 | if ( p[0] != '_' ) continue; | 
 
| 763 | 0 | 0 | if ( !strcmp(p, "0") ) { | 
 
| 767 | 0 | 0 | if ( BPC_LogLevel >= 6 ) { | 
 
| 774 | 0 | 0 | if ( BPC_LogLevel >= 6 ) { | 
 
| 787 | 0 | 0 | if ( dir->digest.len == 0 ) return 0; | 
 
| 790 | 0 | 0 | if ( bpc_fileZIO_open(&fd, attribPath, 0, dir->compress) ) { | 
 
| 795 | 0 | 0 | if ( nRead == 0 ) { | 
 
| 801 | 0 | 0 | if ( !strcmp(attribFileName, "attrib") ) { | 
 
| 806 | 0 | 0 | if ( rename(attribPath, attribPathTemp) ) { | 
 
| 809 | 0 | 0 | } else if ( BPC_LogLevel >= 6 ) { | 
 
| 815 | 0 | 0 | if ( nRead < 4 ) { | 
 
| 823 | 0 | 0 | if ( magic == BPC_ATTRIB_TYPE_DIGEST ) { | 
 
| 828 | 0 | 0 | if ( nRead < 20 ) { | 
 
| 833 | 0 | 0 | if ( digestLen > sizeof(dir->digest.digest) ) digestLen = sizeof(dir->digest.digest); | 
 
| 837 | 0 | 0 | if ( !KeepOldAttribFiles ) { | 
 
| 842 | 0 | 0 | if ( attribPathLen + dir->digest.len * 2 + 2 >= sizeof(attribPathNew) ) { | 
 
| 850 | 0 | 0 | if ( (fdNum = open(attribPathNew, O_WRONLY | O_CREAT | O_TRUNC, 0660)) < 0 ) { | 
 
| 856 | 0 | 0 | if ( BPC_LogLevel >= 4 ) bpc_logMsgf("bpc_attrib_dirRead: replaced %s with %s\n", | 
 
| 861 | 0 | 0 | if ( dir->digest.len > 0 ) { | 
 
| 868 | 0 | 0 | if ( bpc_fileZIO_open(&fd, attribPath, 0, dir->compress) ) { | 
 
| 873 | 0 | 0 | if ( nRead < 4 ) { | 
 
| 882 | 0 | 0 | if ( magic == BPC_ATTRIB_TYPE_XATTR ) { | 
 
| 884 | 0 | 0 | while ( bufP < buf + nRead ) { | 
 
| 891 | 0 | 0 | if ( nRead == sizeof(buf) && bufP > buf + nRead - 2 * BPC_MAXPATHLEN | 
 
|  | 0 | 0 | if ( nRead == sizeof(buf) && bufP > buf + nRead - 2 * BPC_MAXPATHLEN | 
 
| 892 | 0 | 0 | && read_more_data(&fd, buf, sizeof(buf), &nRead, &bufP, attribPath) ) { | 
 
| 898 | 0 | 0 | if ( fileNameLen > BPC_MAXPATHLEN - 1 ) { | 
 
| 920 | 0 | 0 | if ( bufP > buf + nRead ) { | 
 
| 926 | 0 | 0 | if ( retry ) { | 
 
| 932 | 0 | 0 | if ( BPC_LogLevel >= 7 ) bpc_logMsgf("bpc_attrib_dirRead: retrying file conversion\n"); | 
 
| 934 | 0 | 0 | if ( read_more_data(&fd, buf, sizeof(buf), &nRead, &bufP, attribPath) ) { | 
 
| 942 | 0 | 0 | if ( !retry && BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirRead(%s): Got file %s: type = %d, mode = 0%o, uid/gid = %d/%d, size = %d\n", | 
 
|  | 0 | 0 | if ( !retry && BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirRead(%s): Got file %s: type = %d, mode = 0%o, uid/gid = %d/%d, size = %d\n", | 
 
| 945 | 0 | 0 | } else if ( magic == BPC_ATTRIB_TYPE_UNIX ) { | 
 
| 946 | 0 | 0 | while ( bufP < buf + nRead ) { | 
 
| 953 | 0 | 0 | if ( nRead == sizeof(buf) && bufP > buf + nRead - 2 * BPC_MAXPATHLEN | 
 
|  | 0 | 0 | if ( nRead == sizeof(buf) && bufP > buf + nRead - 2 * BPC_MAXPATHLEN | 
 
| 954 | 0 | 0 | && read_more_data(&fd, buf, sizeof(buf), &nRead, &bufP, attribPath) ) { | 
 
| 960 | 0 | 0 | if ( fileNameLen > 2 * BPC_MAXPATHLEN - 16 ) { | 
 
| 988 | 0 | 0 | if ( BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirRead(%s): Got v3 file %s: type = %d, mode = 0%o, uid/gid = %d/%d, size = %d\n", | 
 
| 1014 | 0 | 0 | if ( info->bufP > info->buf ) { | 
 
| 1015 | 0 | 0 | if ( BPC_LogLevel >= 7 ) bpc_logMsgf("write_file_flush: writing %lu bytes to pool\n", (unsigned long)(info->bufP - info->buf)); | 
 
| 1026 | 0 | 0 | if ( xattr->key.keyLen >= 1 && info->bufP + xattr->key.keyLen <= info->bufEnd ) { | 
 
|  | 0 | 0 | if ( xattr->key.keyLen >= 1 && info->bufP + xattr->key.keyLen <= info->bufEnd ) { | 
 
| 1028 | 0 | 0 | if ( info->bufP[xattr->key.keyLen - 1] != 0x0 ) { | 
 
| 1035 | 0 | 0 | if ( info->bufP + xattr->valueLen <= info->bufEnd ) { | 
 
| 1057 | 0 | 0 | if ( bufP + fileNameLen < bufEnd ) { | 
 
| 1074 | 0 | 0 | if ( bufP + file->digest.len <= bufEnd ) { | 
 
| 1083 | 0 | 0 | if ( info.numEntries != xattrEntryCnt ) { | 
 
| 1093 | 0 | 0 | if ( file->isTemp ) { | 
 
| 1094 | 0 | 0 | if ( BPC_LogLevel >= 6 ) bpc_logMsgf("Skipping temp file %s: type = %d, mode = 0%o, uid/gid = %lu/%lu, size = %lu, inode = %lu, nlinks = %d, digest = 0x%02x%02x%02x..., bufUsed = %lu\n", | 
 
| 1103 | 0 | 0 | if ( BPC_LogLevel >= 6 ) bpc_logMsgf("Wrote file %s: type = %d, mode = 0%o, uid/gid = %lu/%lu, size = %lu, inode = %lu, nlinks = %d, digest = 0x%02x%02x%02x..., bufUsed = %lu\n", | 
 
| 1110 | 0 | 0 | if ( bufP <= info->buf + sizeof(info->buf) ) { | 
 
| 1122 | 0 | 0 | if ( bufP <= info->buf + sizeof(info->buf) ) { | 
 
| 1145 | 0 | 0 | if ( BPC_LogLevel >= 6 ) bpc_logMsgf("bpc_attrib_dirWriteOld(%s)\n", attribPath); | 
 
| 1147 | 0 | 0 | if ( (p = strrchr(attribPathTemp, '/')) ) { | 
 
| 1149 | 0 | 0 | if ( bpc_path_create(attribPathTemp) ) return -1; | 
 
| 1153 | 0 | 0 | if ( bpc_hashtable_entryCount(&dir->filesHT) == 0 ) { | 
 
| 1158 | 0 | 0 | if ( (fdNum = open(attribPathTemp, O_WRONLY | O_CREAT | O_TRUNC, 0660)) < 0 ) { | 
 
| 1163 | 0 | 0 | if ( rename(attribPathTemp, attribPath) ) { | 
 
| 1167 | 0 | 0 | if ( oldDigest ) bpc_poolRefDeltaUpdate(deltaInfo, dir->compress, oldDigest, -1); | 
 
| 1180 | 0 | 0 | if ( errorCnt ) return -1; | 
 
| 1185 | 0 | 0 | if ( bpc_fileZIO_open(&fd, attribPathTemp, 1, dir->compress) ) { | 
 
| 1191 | 0 | 0 | if ( digest.len > 0 ) { | 
 
| 1195 | 0 | 0 | if ( bpc_fileZIO_write(&fd, info.buf, info.bufP - info.buf) < 0 ) { | 
 
| 1201 | 0 | 0 | if ( rename(attribPathTemp, attribPath) ) { | 
 
| 1205 | 0 | 0 | if ( BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirWrite: new attrib digest = 0x%02x%02x%02x..., oldDigest = 0x%02x%02x...\n", | 
 
|  | 0 | 0 | if ( BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirWrite: new attrib digest = 0x%02x%02x%02x..., oldDigest = 0x%02x%02x...\n", | 
 
|  | 0 | 0 | if ( BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirWrite: new attrib digest = 0x%02x%02x%02x..., oldDigest = 0x%02x%02x...\n", | 
 
| 1209 | 0 | 0 | if ( oldDigest ) bpc_poolRefDeltaUpdate(deltaInfo, dir->compress, oldDigest, -1); | 
 
| 1233 | 0 | 0 | if ( WriteOldStyleAttribFile ) return bpc_attrib_dirWriteOld(deltaInfo, dir, dirPath, attribFileName, oldDigest); | 
 
| 1239 | 0 | 0 | if ( (baseAttribFileName = strrchr(attribFileName, '/')) ) { | 
 
| 1247 | 0 | 0 | if ( BPC_LogLevel >= 6 ) bpc_logMsgf("bpc_attrib_dirWrite(%s): dirPath = %s, attribFileName = %s, baseAttribFileName = %s\n", | 
 
| 1250 | 0 | 0 | if ( (p = strrchr(attribPathTemp, '/')) ) { | 
 
| 1252 | 0 | 0 | if ( bpc_path_create(attribPathTemp) ) return -1; | 
 
| 1257 | 0 | 0 | if ( bpc_hashtable_entryCount(&dir->filesHT) > 0 ) { | 
 
| 1269 | 0 | 0 | if ( errorCnt ) return -1; | 
 
| 1278 | 0 | 0 | if ( attribPathLen + digest.len * 2 + 2 >= sizeof(attribPath) ) { | 
 
| 1287 | 0 | 0 | if ( (fdNum = open(attribPathTemp, O_WRONLY | O_CREAT | O_TRUNC, 0660)) < 0 ) { | 
 
| 1292 | 0 | 0 | if ( rename(attribPathTemp, attribPath) ) { | 
 
| 1296 | 0 | 0 | if ( BPC_LogLevel >= 5 ) bpc_logMsgf("bpc_attrib_dirWrite: created new attrib file %s\n", attribPath); | 
 
| 1301 | 0 | 0 | if ( BPC_LogLevel >= 5 ) bpc_logMsgf("bpc_attrib_dirWrite: skipping creating new empty attrib file %s\n", attribPath); | 
 
| 1305 | 0 | 0 | if ( BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirWrite: new attrib digest = 0x%02x%02x%02x..., oldDigest = 0x%02x%02x...\n", | 
 
|  | 0 | 0 | if ( BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirWrite: new attrib digest = 0x%02x%02x%02x..., oldDigest = 0x%02x%02x...\n", | 
 
|  | 0 | 0 | if ( BPC_LogLevel >= 8 ) bpc_logMsgf("bpc_attrib_dirWrite: new attrib digest = 0x%02x%02x%02x..., oldDigest = 0x%02x%02x...\n", | 
 
| 1309 | 0 | 0 | digestChanged = !oldDigest || bpc_digest_compare(&digest, oldDigest); | 
 
|  | 0 | 0 | digestChanged = !oldDigest || bpc_digest_compare(&digest, oldDigest); | 
 
| 1310 | 0 | 0 | if ( digestChanged && digest.len > 0 ) { | 
 
|  | 0 | 0 | if ( digestChanged && digest.len > 0 ) { | 
 
| 1314 | 0 | 0 | if ( oldDigest ) { | 
 
| 1315 | 0 | 0 | if ( !digestChanged ) { | 
 
| 1316 | 0 | 0 | if ( BPC_LogLevel >= 4 ) bpc_logMsgf("bpc_attrib_dirWrite: old attrib has same digest; no changes to ref counts\n"); | 
 
| 1319 | 0 | 0 | if ( attribPathLen + oldDigest->len * 2 + 2 >= sizeof(attribPath) ) { | 
 
| 1324 | 0 | 0 | if ( oldDigest->len > 0 ) { | 
 
| 1330 | 0 | 0 | if ( !unlink(attribPathTemp) ) { | 
 
| 1331 | 0 | 0 | if ( BPC_LogLevel >= 5 ) bpc_logMsgf("bpc_attrib_dirWrite: removed old attrib file %s\n", attribPathTemp); | 
 
| 1341 | 0 | 0 | if ( !(p = strrchr(attribPath, '/')) ) { | 
 
| 1346 | 0 | 0 | if ( !(dirOs = opendir(attribPath)) ) { | 
 
| 1350 | 0 | 0 | while ( (dp = readdir(dirOs)) ) { | 
 
| 1351 | 0 | 0 | if ( strncmp(dp->d_name, baseAttribFileName, baseAttribFileNameLen) || !strcmp(dp->d_name, p) ) continue; | 
 
|  | 0 | 0 | if ( strncmp(dp->d_name, baseAttribFileName, baseAttribFileNameLen) || !strcmp(dp->d_name, p) ) continue; | 
 
| 1354 | 0 | 0 | if ( BPC_LogLevel >= 5 ) bpc_logMsgf("bpc_attrib_dirWrite: removed other old attrib file %s\n", deletePath); |