int test);
static int sharedFileCmp(const void * one, const void * two) {
- if (((struct sharedFile *) one)->mainFileNumber <
- ((struct sharedFile *) one)->mainFileNumber)
+ if (((struct sharedFile *) one)->secRecOffset <
+ ((struct sharedFile *) two)->secRecOffset)
return -1;
- else if (((struct sharedFile *) one)->mainFileNumber ==
- ((struct sharedFile *) one)->mainFileNumber)
+ else if (((struct sharedFile *) one)->secRecOffset ==
+ ((struct sharedFile *) two)->secRecOffset)
return 0;
else
return 1;
static int handleSharedFiles(rpmdb db, int offset, char ** fileList,
char ** fileMd5List, int fileCount,
enum fileActions * fileActions) {
- Header sech;
+ Header sech = NULL;
int secOffset = 0;
struct sharedFile * sharedList;
int sharedCount;
for (i = 0; i < sharedCount; i++) {
if (secOffset != sharedList[i].secRecOffset) {
if (secOffset) {
+ freeHeader(sech);
free(secFileMd5List);
free(secFileList);
}
(void **) &secFileStatesList, &secFileCount);
getEntry(sech, RPMTAG_FILEMD5S, &type,
(void **) &secFileMd5List, &secFileCount);
-
- freeHeader(sech);
}
message(MESS_DEBUG, "file %s is shared\n",
}
if (secOffset) {
+ freeHeader(sech);
free(secFileMd5List);
free(secFileList);
}