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:
@@ -104,7 +104,13 @@ section LZMA_DEC30
|
|||||||
movl szSizeT(%rbx),%ecx; addq %rcx,%rsi // inSizeProcessed
|
movl szSizeT(%rbx),%ecx; addq %rcx,%rsi // inSizeProcessed
|
||||||
movl (%rbx),%edx; addq %rdx,%rdi // outSizeProcessed
|
movl (%rbx),%edx; addq %rdx,%rdi // outSizeProcessed
|
||||||
leave // movl %ebp,%rsp; popq %rbp
|
leave // movl %ebp,%rsp; popq %rbp
|
||||||
|
#ifndef NO_METHOD_CHECK
|
||||||
|
jmp eof_lzma
|
||||||
not_lzma:
|
not_lzma:
|
||||||
|
push %rdi; pop %rsi # src = arg1
|
||||||
|
# fall into 'eof'
|
||||||
|
eof_lzma:
|
||||||
|
#endif
|
||||||
|
|
||||||
// vi:ts=8:et
|
// vi:ts=8:et
|
||||||
|
|
||||||
|
|||||||
@@ -30,10 +30,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef NO_METHOD_CHECK
|
#ifndef NO_METHOD_CHECK
|
||||||
cmpb $ M_NRV2B_LE32,methb; je top_n2b; jmp not_n2b
|
cmpb $ M_NRV2B_LE32,methb; jne not_n2b
|
||||||
#else
|
|
||||||
jmp top_n2b
|
|
||||||
#endif
|
#endif
|
||||||
|
jmp top_n2b
|
||||||
|
|
||||||
lit_n2b:
|
lit_n2b:
|
||||||
incq %rsi; movb %dl,(%rdi)
|
incq %rsi; movb %dl,(%rdi)
|
||||||
@@ -67,7 +66,11 @@ gotlen_n2b:
|
|||||||
bot_n2b: # In: 0==len
|
bot_n2b: # In: 0==len
|
||||||
jmp top_n2b
|
jmp top_n2b
|
||||||
|
|
||||||
|
#ifndef NO_METHOD_CHECK
|
||||||
not_n2b:
|
not_n2b:
|
||||||
|
push %rdi; pop %rsi # src = arg1
|
||||||
|
# fall into 'eof'
|
||||||
|
#endif
|
||||||
/*
|
/*
|
||||||
vi:ts=8:et:nowrap
|
vi:ts=8:et:nowrap
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -30,10 +30,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef NO_METHOD_CHECK
|
#ifndef NO_METHOD_CHECK
|
||||||
cmpb $ M_NRV2D_LE32,methb; je top_n2d; jmp not_n2d
|
cmpb $ M_NRV2D_LE32,methb; jne not_n2d
|
||||||
#else
|
|
||||||
jmp top_n2d
|
|
||||||
#endif
|
#endif
|
||||||
|
jmp top_n2d
|
||||||
|
|
||||||
lit_n2d:
|
lit_n2d:
|
||||||
incq %rsi; movb %dl,(%rdi)
|
incq %rsi; movb %dl,(%rdi)
|
||||||
@@ -74,7 +73,10 @@ gotlen_n2d:
|
|||||||
bot_n2d: // In: 0==len
|
bot_n2d: // In: 0==len
|
||||||
jmp top_n2d
|
jmp top_n2d
|
||||||
|
|
||||||
|
#ifndef NO_METHOD_CHECK
|
||||||
not_n2d:
|
not_n2d:
|
||||||
|
push %rdi; pop %rsi # src = arg1
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
vi:ts=8:et:nowrap
|
vi:ts=8:et:nowrap
|
||||||
|
|||||||
@@ -30,10 +30,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef NO_METHOD_CHECK
|
#ifndef NO_METHOD_CHECK
|
||||||
cmpb $ M_NRV2E_LE32,methb; je top_n2e; jmp not_n2e
|
cmpb $ M_NRV2E_LE32,methb; jne not_n2e
|
||||||
#else
|
|
||||||
jmp top_n2e
|
|
||||||
#endif
|
#endif
|
||||||
|
jmp top_n2e
|
||||||
|
|
||||||
lit_n2e:
|
lit_n2e:
|
||||||
incq %rsi; movb %dl,(%rdi)
|
incq %rsi; movb %dl,(%rdi)
|
||||||
@@ -80,7 +79,10 @@ gotlen_n2e:
|
|||||||
bot_n2e: # In: 0==len
|
bot_n2e: # In: 0==len
|
||||||
jmp top_n2e
|
jmp top_n2e
|
||||||
|
|
||||||
|
#ifndef NO_METHOD_CHECK
|
||||||
not_n2e:
|
not_n2e:
|
||||||
|
push %rdi; pop %rsi # src = arg1
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
vi:ts=8:et:nowrap
|
vi:ts=8:et:nowrap
|
||||||
|
|||||||
Reference in New Issue
Block a user