Skip to content

Undefined Behavior: some runtime errors #334

@xiaoxiaoafeifei

Description

@xiaoxiaoafeifei

Hi,
I found some runtime errors on Version 3.0.6

Here's UBSAN log:
test@9e5cd2886520:~/fuzz_target/jasper-3.0.6/builder$ /usr/local/bin/jasper --input input_file --output /dev/null --output-format jp2
/home/zll/fuzz_target/jasper-3.0.6/src/libjasper/pgx/pgx_dec.c:512:10: runtime error: shift exponent 32 is too large for 32-bit type 'int'
SUMMARY: AddressSanitizer: undefined-behavior /home/zll/fuzz_target/jasper-3.0.6/src/libjasper/pgx/pgx_dec.c:512:10 in
/home/zll/fuzz_target/jasper-3.0.6/src/libjasper/pgx/pgx_dec.c:513:25: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
SUMMARY: AddressSanitizer: undefined-behavior /home/zll/fuzz_target/jasper-3.0.6/src/libjasper/pgx/pgx_dec.c:513:25 in
/home/zll/fuzz_target/jasper-3.0.6/src/libjasper/base/jas_image.c:1011:59: runtime error: shift exponent 32 is too large for 32-bit type 'int'
SUMMARY: AddressSanitizer: undefined-behavior /home/zll/fuzz_target/jasper-3.0.6/src/libjasper/base/jas_image.c:1011:59 in

/home/zll/fuzz_target/jasper-3.0.6/src/libjasper/base/jas_image.c:1011:59: runtime error: shift exponent 32 is too large for 32-bit type 'int'
SUMMARY: AddressSanitizer: undefined-behavior /home/zll/fuzz_target/jasper-3.0.6/src/libjasper/base/jas_image.c:1011:59 in
/home/zll/fuzz_target/jasper-3.0.6/src/libjasper/base/jas_image.c:1011:38: runtime error: shift exponent 32 is too large for 32-bit type 'int'
SUMMARY: AddressSanitizer: undefined-behavior /home/zll/fuzz_target/jasper-3.0.6/src/libjasper/base/jas_image.c:1011:38 in

/home/zll/fuzz_target/jasper-3.0.6/src/libjasper/base/jas_image.c:672:7: runtime error: left shift of 53689972015759360 by 8 places cannot be represented in type 'jas_seqent_t' (aka 'long')
SUMMARY: AddressSanitizer: undefined-behavior /home/zll/fuzz_target/jasper-3.0.6/src/libjasper/base/jas_image.c:672:7 in

Steps to Reproduce:

  1. CC=clang /usr/local/bin/cmake -DCMAKE_C_FLAGS="-fsanitize=undefined,address,leak" -B builder
  2. make & make install
  3. /usr/local/bin/jasper --input input_file --output /dev/null --output-format jp2

input.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions