fix alignment problem on SPARC

git-svn: trunk@2002
remotes/push_mirror/metadata
Tomasz Kojm 19 years ago
parent 38cb3f8f52
commit e7ef4f5294
  1. 4
      clamav-devel/ChangeLog
  2. 7
      clamav-devel/libclamav/unzip.c

@ -1,3 +1,7 @@
Tue May 30 17:18:15 CEST 2006 (tk)
----------------------------------
* libclamav/unzip.c: fix alignment problem on SPARC reported by Andy Fiddaman
Tue May 30 15:45:24 CEST 2006 (tk)
----------------------------------
* libclamav/others.h: add missing brackets to some endian macros, spotted

@ -175,6 +175,7 @@ int __zip_parse_root_directory(int fd, struct zip_disk_trailer *trailer, zip_dir
uint32_t u_rootsize = EC32(trailer->z_rootsize);
uint32_t u_rootseek = EC32(trailer->z_rootseek) + start;
uint16_t u_extras, u_comment, u_namlen, u_flags;
char *pt;
if(fstat(fd, &sb) == -1) {
@ -256,8 +257,12 @@ int __zip_parse_root_directory(int fd, struct zip_disk_trailer *trailer, zip_dir
break;
}
hdr->d_reclen = (uint16_t) (sizeof(zip_dir_hdr) + u_namlen + 1);
pt = (char *) hdr + sizeof(zip_dir_hdr) + u_namlen + 1;
pt += ((long) pt) & 1;
pt += ((long) pt) & 2;
hdr->d_reclen = (uint16_t) (pt - (char *) hdr);
p_reclen = &hdr->d_reclen;
hdr = (zip_dir_hdr *) ((char *) hdr + hdr->d_reclen);
}

Loading…
Cancel
Save