View Issue Details

IDProjectCategoryView StatusLast Update
0002983Spring engineGeneralpublic2012-02-27 23:16
ReporterSirMaverick Assigned Toabma  
PrioritynormalSeverityminorReproducibilityalways
Status resolvedResolutionfixed 
Product Version86.0 
Summary0002983: zlib 1.2.6 breaks PoolArchive
Descriptionzlib changed recently the behavior of gzeof. It now does only return true if you read past the end of the file. The code in PoolArchive assumes that it already returns true if you're just hit the end.
Additional Informationhttps://github.com/madler/zlib/commit/98f5779f4257682ba9b5fc490557618e3f15f84b

TagsNo tags attached.
Checked infolog.txt for Errors

Activities

SirMaverick

2012-02-27 07:07

reporter   ~0008346

Last edited: 2012-02-27 07:21

possible fix: move the gzeof test inside the first read block

https://github.com/1231e7b84a5de93a/spring/commit/6c8fe6257b337e748e76e78b34d5dfaa167e0fb1

Not sure how to catch different errors.

jK

2012-02-27 20:20

developer   ~0008349

https://github.com/spring/spring/commit/58c8706aeb02fd58c1fc8c6a0ac36b68d95302b2

SirMaverick

2012-02-27 21:41

reporter   ~0008350

Current master (86.0) does not work with latest zlib.

58c8706aeb02fd58c1fc8c6a0ac36b68d95302b2 does not change the logic concerning gzeof.

At end of file: new gzeof (zlib 1.2.6.) will return false. Next gz_really_read will fail and break will leave the while loop without setting isOpen.

The gzeof call must happen after the first read fails (read beyond file end)

abma

2012-02-27 23:16

administrator   ~0008351

thanks, your fix is fine. (tested with LD_PRELOAD=/path/to/libz.so.1.2.6)

the other gz_really_read() calls should return != 0 if they read beyond the end of the file.

Issue History

Date Modified Username Field Change
2012-02-27 07:07 SirMaverick New Issue
2012-02-27 07:07 SirMaverick Note Added: 0008346
2012-02-27 07:21 SirMaverick Note Edited: 0008346
2012-02-27 20:20 jK Note Added: 0008349
2012-02-27 20:20 jK Status new => resolved
2012-02-27 20:20 jK Resolution open => fixed
2012-02-27 20:20 jK Assigned To => jK
2012-02-27 21:41 SirMaverick Note Added: 0008350
2012-02-27 21:41 SirMaverick Status resolved => feedback
2012-02-27 21:41 SirMaverick Resolution fixed => reopened
2012-02-27 22:54 abma Status feedback => assigned
2012-02-27 22:54 abma Assigned To jK => abma
2012-02-27 23:16 abma Note Added: 0008351
2012-02-27 23:16 abma Status assigned => resolved
2012-02-27 23:16 abma Resolution reopened => fixed