94,95d93 < #define DEBUGME < 447d444 < TRACEME(("** extending kbuf to %u bytes (had %u)", (unsigned int)x+1, ksiz)); \ 896d892 < TRACEME(("1 RLEN x=%u", (unsigned int) x)); \ 898,899c894 < TRACEME(("2 RLEN x=%u", (unsigned int) x)); \ < if (!cxt->fio) { \ --- > if (!cxt->fio) \ 901,902d895 < TRACEME(("3 RLEN x=%u", (unsigned int) x)); \ < } \ 905d897 < TRACEME(("4 RLEN x=%u", (unsigned int) x)); \ 908d899 < TRACEME(("5 RLEN x=%u", (unsigned int) x)); \ 4815d4805 < if ( (unsigned)size > 1000000 ) Perl_croak(aTHX_ "Bugger!\n"); #### 4 RLEN x=6 5 RLEN x=6 (#0) key 'latest' (#1) value retrieve retrieve type = 8 retrieve_byte (#244) small integer read as 131 aseen(#244) = 0x80fb63c (refcnt=1) byte 3 ok (retrieve_byte at 0x80fb63c) ok (retrieved 0x80fb63c, refcnt=1, SCALAR) 1 RLEN x=6 2 RLEN x=6 4 RLEN x=5 5 RLEN x=5 (#1) key 'count' (#2) value retrieve retrieve type = 5 retrieve_undef aseen(#245) = 0x80fb648 (refcnt=1) ok (retrieved 0x80fb648, refcnt=1, SCALAR) 1 RLEN x=5 2 RLEN x=5 4 RLEN x=5 5 RLEN x=5 (#2) key 'first' ok (retrieve_hash at 0x80fb624) ok (retrieved 0x80fb624, refcnt=1, HASH) ok (retrieve_ref at 0x80fb618) ok (retrieved 0x80fb618, refcnt=1, REF) 1 RLEN x=2 2 RLEN x=2 4 RLEN x=7 5 RLEN x=7 (#8) key 'session' (#9) value retrieve retrieve type = 6 retrieve_integer (#246) aseen(#246) = 0x80fb654 (refcnt=1) integer 1769174005 ok (retrieve_integer at 0x80fb654) ok (retrieved 0x80fb654, refcnt=1, SCALAR) 1 RLEN x=7 2 RLEN x=7 4 RLEN x=4110839407 5 RLEN x=4110839407 Bugger!, at ./test.pl line 4 #### 00000FE0: 05 00 00 00 63 6F 75 6E 74 05 05 00 00 00 66 69 ....count.....fi 00000FF0: 72 73 74 07 00 00 00 73 65 73 73 69 6F 6E 06 F5 rst....session.. s e s s i o^ n^ ^ ^ 00001000: 73 73 69 6F 6E 06 F5 00 00 00 0D 00 00 00 73 65 ssion.........se s s i o n ^ ^ 00001010: 73 73 69 6F 6E 5F 63 6F 75 6E 74 0A 01 4C 04 00 ssion_count..L.. NOTE >>>>> Offset of the error is 4096 bytes. #### RLEN(size); /* Get key size */ + if ( (unsigned)size > 1000000 ) Perl_croak(aTHX_ "Bugger!\n"); KBUFCHK((STRLEN)size); /* Grow hash key read pool if needed */ #### store \%profile, $file; eval{ retrieve($file) }; if ( $@ ) { require Data::Dumper; warn "\n\n\nStorable Choked\n\n\n"; warn Data::Dumper::Dumper(\%profile); print "Content-Type: text/html\n\nBugger!\n"; # ;-) exit 1; }