mirror of
https://github.com/libjpeg-turbo/libjpeg-turbo.git
synced 2026-01-18 21:41:20 +01:00
Merge branch 'main' into dev
This commit is contained in:
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@@ -174,7 +174,7 @@ jobs:
|
||||
run: |
|
||||
mkdir build
|
||||
pushd build
|
||||
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=clang -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O0 -g -fsanitize=memory -fno-sanitize-recover=all -fPIE" -DWITH_SIMD=0 ..
|
||||
cmake -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_C_COMPILER=clang -DCMAKE_C_FLAGS_RELWITHDEBINFO="-O0 -g -fsanitize=memory -fsanitize-memory-param-retval -fno-sanitize-recover=all -fPIE" -DWITH_SIMD=0 ..
|
||||
export NUMCPUS=`grep -c '^processor' /proc/cpuinfo`
|
||||
make -j$NUMCPUS --load-average=$NUMCPUS
|
||||
make test
|
||||
|
||||
@@ -1735,21 +1735,21 @@ if(WITH_TURBOJPEG)
|
||||
if(ENABLE_SHARED)
|
||||
install(TARGETS turbojpeg EXPORT ${CMAKE_PROJECT_NAME}Targets
|
||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
|
||||
install(TARGETS tjbench
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
|
||||
if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC AND
|
||||
CMAKE_C_LINKER_SUPPORTS_PDB)
|
||||
install(FILES "$<TARGET_PDB_FILE:turbojpeg>"
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin OPTIONAL)
|
||||
endif()
|
||||
endif()
|
||||
if(ENABLE_STATIC)
|
||||
install(TARGETS turbojpeg-static EXPORT ${CMAKE_PROJECT_NAME}Targets
|
||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib)
|
||||
if(NOT ENABLE_SHARED)
|
||||
if(GENERATOR_IS_MULTI_CONFIG)
|
||||
set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}")
|
||||
@@ -1757,17 +1757,17 @@ if(WITH_TURBOJPEG)
|
||||
set(DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endif()
|
||||
install(PROGRAMS ${DIR}/tjbench-static${EXE}
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME tjbench${EXE})
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin RENAME tjbench${EXE})
|
||||
endif()
|
||||
endif()
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/turbojpeg.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT include)
|
||||
endif()
|
||||
|
||||
if(ENABLE_STATIC)
|
||||
install(TARGETS jpeg-static EXPORT ${CMAKE_PROJECT_NAME}Targets
|
||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib)
|
||||
if(NOT ENABLE_SHARED)
|
||||
if(GENERATOR_IS_MULTI_CONFIG)
|
||||
set(DIR "${CMAKE_CURRENT_BINARY_DIR}/\${CMAKE_INSTALL_CONFIG_NAME}")
|
||||
@@ -1775,15 +1775,16 @@ if(ENABLE_STATIC)
|
||||
set(DIR ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endif()
|
||||
install(PROGRAMS ${DIR}/cjpeg-static${EXE}
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME cjpeg${EXE})
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin RENAME cjpeg${EXE})
|
||||
install(PROGRAMS ${DIR}/djpeg-static${EXE}
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME djpeg${EXE})
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin RENAME djpeg${EXE})
|
||||
install(PROGRAMS ${DIR}/jpegtran-static${EXE}
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} RENAME jpegtran${EXE})
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin RENAME jpegtran${EXE})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
install(TARGETS rdjpgcom wrjpgcom RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
install(TARGETS rdjpgcom wrjpgcom
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/README.md
|
||||
@@ -1793,10 +1794,11 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.ijg
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/doc/structure.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/doc/usage.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/doc/wizard.txt
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
||||
COMPONENT doc)
|
||||
if(WITH_JAVA)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/java/TJExample.java
|
||||
DESTINATION ${CMAKE_INSTALL_DOCDIR})
|
||||
DESTINATION ${CMAKE_INSTALL_DOCDIR} COMPONENT doc)
|
||||
endif()
|
||||
|
||||
if(UNIX OR MINGW)
|
||||
@@ -1805,27 +1807,29 @@ if(UNIX OR MINGW)
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/doc/jpegtran.1
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/doc/rdjpgcom.1
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/doc/wrjpgcom.1
|
||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
|
||||
DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 COMPONENT man)
|
||||
endif()
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libjpeg.pc
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT lib)
|
||||
if(WITH_TURBOJPEG)
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/libturbojpeg.pc
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig COMPONENT lib)
|
||||
endif()
|
||||
install(FILES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/${CMAKE_PROJECT_NAME}Config.cmake
|
||||
${CMAKE_CURRENT_BINARY_DIR}/pkgscripts/${CMAKE_PROJECT_NAME}ConfigVersion.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME})
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
|
||||
COMPONENT lib)
|
||||
install(EXPORT ${CMAKE_PROJECT_NAME}Targets
|
||||
NAMESPACE ${CMAKE_PROJECT_NAME}::
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME})
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${CMAKE_PROJECT_NAME}
|
||||
COMPONENT lib)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/jconfig.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/jerror.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/jmorecfg.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src/jpeglib.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT include)
|
||||
|
||||
include(cmakescripts/BuildPackages.cmake)
|
||||
|
||||
|
||||
@@ -28,6 +28,11 @@ in the C compiler.
|
||||
calling applications to supply custom Huffman tables when generating
|
||||
12-bit-per-component lossy JPEG images using the libjpeg API.
|
||||
|
||||
4. Fixed a segfault that occurred when attempting to use the jpegtran `-drop`
|
||||
option with a specially-crafted malformed input image or drop image
|
||||
(specifically an image in which all of the scans contain fewer components than
|
||||
the number of components specified in the Start Of Frame segment.)
|
||||
|
||||
|
||||
3.0.2
|
||||
=====
|
||||
|
||||
@@ -31,15 +31,15 @@ add_executable(cjpeg_fuzzer${FUZZER_SUFFIX} cjpeg.cc ../src/cdjpeg.c
|
||||
set_property(TARGET cjpeg_fuzzer${FUZZER_SUFFIX} PROPERTY COMPILE_FLAGS
|
||||
${COMPILE_FLAGS})
|
||||
target_link_libraries(cjpeg_fuzzer${FUZZER_SUFFIX} ${FUZZ_LIBRARY} jpeg-static)
|
||||
install(TARGETS cjpeg_fuzzer${FUZZER_SUFFIX} RUNTIME DESTINATION
|
||||
${FUZZ_BINDIR})
|
||||
install(TARGETS cjpeg_fuzzer${FUZZER_SUFFIX}
|
||||
RUNTIME DESTINATION ${FUZZ_BINDIR} COMPONENT bin)
|
||||
|
||||
macro(add_fuzz_target target source_file)
|
||||
add_executable(${target}_fuzzer${FUZZER_SUFFIX} ${source_file})
|
||||
target_link_libraries(${target}_fuzzer${FUZZER_SUFFIX} ${FUZZ_LIBRARY}
|
||||
turbojpeg-static)
|
||||
install(TARGETS ${target}_fuzzer${FUZZER_SUFFIX} RUNTIME DESTINATION
|
||||
${FUZZ_BINDIR})
|
||||
install(TARGETS ${target}_fuzzer${FUZZER_SUFFIX}
|
||||
RUNTIME DESTINATION ${FUZZ_BINDIR} COMPONENT bin)
|
||||
endmacro()
|
||||
|
||||
add_fuzz_target(compress compress.cc)
|
||||
|
||||
@@ -89,5 +89,10 @@ GNUInstallDirs_get_absolute_install_dir(CMAKE_INSTALL_FULL_JAVADIR
|
||||
set(CMAKE_INSTALL_JAVADIR ${CMAKE_INSTALL_JAVADIR} PARENT_SCOPE)
|
||||
set(CMAKE_INSTALL_FULL_JAVADIR ${CMAKE_INSTALL_FULL_JAVADIR} PARENT_SCOPE)
|
||||
report_directory(JAVADIR)
|
||||
install_jar(turbojpeg-java ${CMAKE_INSTALL_JAVADIR})
|
||||
if(CMAKE_VERSION VERSION_EQUAL "3.4" OR CMAKE_VERSION VERSION_GREATER "3.4")
|
||||
install_jar(turbojpeg-java DESTINATION ${CMAKE_INSTALL_JAVADIR}
|
||||
COMPONENT java)
|
||||
else()
|
||||
install_jar(turbojpeg-java ${CMAKE_INSTALL_JAVADIR})
|
||||
endif()
|
||||
mark_as_advanced(CLEAR CMAKE_INSTALL_JAVADIR)
|
||||
|
||||
@@ -121,13 +121,13 @@ target_link_libraries(jcstest jpeg)
|
||||
|
||||
install(TARGETS jpeg EXPORT ${CMAKE_PROJECT_NAME}Targets
|
||||
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} COMPONENT lib
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
|
||||
install(TARGETS cjpeg djpeg jpegtran
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
||||
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin)
|
||||
if(NOT CMAKE_VERSION VERSION_LESS "3.1" AND MSVC AND
|
||||
CMAKE_C_LINKER_SUPPORTS_PDB)
|
||||
install(FILES "$<TARGET_PDB_FILE:jpeg>"
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} OPTIONAL)
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR} COMPONENT bin OPTIONAL)
|
||||
endif()
|
||||
|
||||
10
src/jerror.c
10
src/jerror.c
@@ -229,23 +229,17 @@ reset_error_mgr(j_common_ptr cinfo)
|
||||
GLOBAL(struct jpeg_error_mgr *)
|
||||
jpeg_std_error(struct jpeg_error_mgr *err)
|
||||
{
|
||||
memset(err, 0, sizeof(struct jpeg_error_mgr));
|
||||
|
||||
err->error_exit = error_exit;
|
||||
err->emit_message = emit_message;
|
||||
err->output_message = output_message;
|
||||
err->format_message = format_message;
|
||||
err->reset_error_mgr = reset_error_mgr;
|
||||
|
||||
err->trace_level = 0; /* default = no tracing */
|
||||
err->num_warnings = 0; /* no warnings emitted yet */
|
||||
err->msg_code = 0; /* may be useful as a flag for "no error" */
|
||||
|
||||
/* Initialize message table pointers */
|
||||
err->jpeg_message_table = jpeg_std_message_table;
|
||||
err->last_jpeg_message = (int)JMSG_LASTMSGCODE - 1;
|
||||
|
||||
err->addon_message_table = NULL;
|
||||
err->first_addon_message = 0; /* for safety */
|
||||
err->last_addon_message = 0;
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* This file was part of the Independent JPEG Group's software:
|
||||
* Copyright (C) 1997-2019, Thomas G. Lane, Guido Vollbeding.
|
||||
* libjpeg-turbo Modifications:
|
||||
* Copyright (C) 2010, 2017, 2021-2022, D. R. Commander.
|
||||
* Copyright (C) 2010, 2017, 2021-2022, 2024, D. R. Commander.
|
||||
* For conditions of distribution and use, see the accompanying README.ijg
|
||||
* file.
|
||||
*
|
||||
@@ -201,7 +201,11 @@ adjust_quant(j_decompress_ptr srcinfo, jvirt_barray_ptr *src_coef_arrays,
|
||||
compptr1 = srcinfo->comp_info + ci;
|
||||
compptr2 = dropinfo->comp_info + ci;
|
||||
qtblptr1 = compptr1->quant_table;
|
||||
if (qtblptr1 == NULL)
|
||||
ERREXIT1(srcinfo, JERR_NO_QUANT_TABLE, compptr1->quant_tbl_no);
|
||||
qtblptr2 = compptr2->quant_table;
|
||||
if (qtblptr2 == NULL)
|
||||
ERREXIT1(dropinfo, JERR_NO_QUANT_TABLE, compptr2->quant_tbl_no);
|
||||
for (k = 0; k < DCTSIZE2; k++) {
|
||||
if (qtblptr1->quantval[k] != qtblptr2->quantval[k]) {
|
||||
if (trim)
|
||||
|
||||
Reference in New Issue
Block a user