• Phillip Webb's avatar
    Protect against JARs with different local headers · d125357b
    Phillip Webb authored
    Fix JarEntryData to re-read the local header, rather than relying on
    the central directory record.
    
    This protects against the situation where a JAR file is written with an
    'Extra Field Length' that is different in the local header to the
    central directory header.
    
    This appears to be the case with aspectj 1.7.4 which contains the
    following central directory file header for ProceedingJoinPoint:
    
    	50 4B 01 02     signature
    	14 03           version made by
    	0A 00           version required
    	00 00           general
    	08 00           compress methods
    	0E 40 59 43     last modified
    	2D 59 20 70     crc
    	EC 00 00 00     csize
    	8D 01 00 00     size
    	2A 00           fname len
    	00 00           ext field len
    	00 00           file comment len
    	00 00           disk num
    	00 00           int file att
    	00 00 A4 81     ext file att
    	97 F3 00 00     relative offset of the local file header
    	...             file name
    
    and the following local header:
    
    	50 4B 03 04     signature
    	0A 00           version required
    	00 00           general
    	08 00           compress method
    	0E 40 59 43     last modified
    	2D 59 20 70     crc
    	EC 00 00 00     csize
    	8D 01 00 00     size
    	2A 00           fname len
    	14 00           ext field len
    	...             file name
    	...             extra field
    
    Note that the 'ext field len' is 0x00 in the central record but 0x14 in
    the local record.
    
    Fixes gh-203
    d125357b
Name
Last commit
Last update
docs Loading commit data...
eclipse Loading commit data...
spring-boot Loading commit data...
spring-boot-actuator Loading commit data...
spring-boot-autoconfigure Loading commit data...
spring-boot-cli Loading commit data...
spring-boot-dependencies Loading commit data...
spring-boot-docs Loading commit data...
spring-boot-full-build Loading commit data...
spring-boot-integration-tests Loading commit data...
spring-boot-maven-settings Loading commit data...
spring-boot-parent Loading commit data...
spring-boot-samples Loading commit data...
spring-boot-starters Loading commit data...
spring-boot-tools Loading commit data...
.gitignore Loading commit data...
.settings-template.xml Loading commit data...
.travis.yml Loading commit data...
CONTRIBUTING.md Loading commit data...
README.md Loading commit data...
pom.xml Loading commit data...