Better return value when de-compression method mismatches.

modified:   arch/amd64/lzma_d.S
	modified:   arch/amd64/nrv2b_d.S
	modified:   arch/amd64/nrv2d_d.S
	modified:   arch/amd64/nrv2e_d.S
This commit is contained in:
John Reiser 2018-10-07 10:15:48 -07:00
parent b05073550c
commit 2a594ad0a7
4 changed files with 22 additions and 9 deletions

View File

@ -104,7 +104,13 @@ section LZMA_DEC30
movl szSizeT(%rbx),%ecx; addq %rcx,%rsi // inSizeProcessed
movl (%rbx),%edx; addq %rdx,%rdi // outSizeProcessed
leave // movl %ebp,%rsp; popq %rbp
#ifndef NO_METHOD_CHECK
jmp eof_lzma
not_lzma:
push %rdi; pop %rsi # src = arg1
# fall into 'eof'
eof_lzma:
#endif
// vi:ts=8:et

View File

@ -30,10 +30,9 @@
*/
#ifndef NO_METHOD_CHECK
cmpb $ M_NRV2B_LE32,methb; je top_n2b; jmp not_n2b
#else
jmp top_n2b
cmpb $ M_NRV2B_LE32,methb; jne not_n2b
#endif
jmp top_n2b
lit_n2b:
incq %rsi; movb %dl,(%rdi)
@ -67,7 +66,11 @@ gotlen_n2b:
bot_n2b: # In: 0==len
jmp top_n2b
#ifndef NO_METHOD_CHECK
not_n2b:
push %rdi; pop %rsi # src = arg1
# fall into 'eof'
#endif
/*
vi:ts=8:et:nowrap
*/

View File

@ -30,10 +30,9 @@
*/
#ifndef NO_METHOD_CHECK
cmpb $ M_NRV2D_LE32,methb; je top_n2d; jmp not_n2d
#else
jmp top_n2d
cmpb $ M_NRV2D_LE32,methb; jne not_n2d
#endif
jmp top_n2d
lit_n2d:
incq %rsi; movb %dl,(%rdi)
@ -74,7 +73,10 @@ gotlen_n2d:
bot_n2d: // In: 0==len
jmp top_n2d
#ifndef NO_METHOD_CHECK
not_n2d:
push %rdi; pop %rsi # src = arg1
#endif
/*
vi:ts=8:et:nowrap

View File

@ -30,10 +30,9 @@
*/
#ifndef NO_METHOD_CHECK
cmpb $ M_NRV2E_LE32,methb; je top_n2e; jmp not_n2e
#else
jmp top_n2e
cmpb $ M_NRV2E_LE32,methb; jne not_n2e
#endif
jmp top_n2e
lit_n2e:
incq %rsi; movb %dl,(%rdi)
@ -80,7 +79,10 @@ gotlen_n2e:
bot_n2e: # In: 0==len
jmp top_n2e
#ifndef NO_METHOD_CHECK
not_n2e:
push %rdi; pop %rsi # src = arg1
#endif
/*
vi:ts=8:et:nowrap