Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package libfmapi for openSUSE:Factory checked in at 2023-04-08 17:39:23 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/libfmapi (Old) and /work/SRC/openSUSE:Factory/.libfmapi.new.19717 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "libfmapi" Sat Apr 8 17:39:23 2023 rev:9 rq:1077985 version:20230408 Changes: -------- --- /work/SRC/openSUSE:Factory/libfmapi/libfmapi.changes 2023-04-05 21:36:00.962692083 +0200 +++ /work/SRC/openSUSE:Factory/.libfmapi.new.19717/libfmapi.changes 2023-04-08 17:39:40.318255428 +0200 @@ -1,0 +2,6 @@ +Sat Apr 8 07:51:55 UTC 2023 - Jan Engelhardt <jeng...@inai.de> + +- Update to release 20230408 + * More resilience after some fuzzing was done + +------------------------------------------------------------------- Old: ---- libfmapi-experimental-20230405.tar.gz libfmapi-experimental-20230405.tar.gz.asc New: ---- libfmapi-experimental-20230408.tar.gz libfmapi-experimental-20230408.tar.gz.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ libfmapi.spec ++++++ --- /var/tmp/diff_new_pack.Pavh9f/_old 2023-04-08 17:39:40.798258183 +0200 +++ /var/tmp/diff_new_pack.Pavh9f/_new 2023-04-08 17:39:40.802258207 +0200 @@ -18,7 +18,7 @@ Name: libfmapi %define lname libfmapi1 -Version: 20230405 +Version: 20230408 Release: 0 Summary: Library for MAPI data types License: LGPL-3.0-or-later ++++++ libfmapi-experimental-20230405.tar.gz -> libfmapi-experimental-20230408.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/common/config.h new/libfmapi-20230408/common/config.h --- old/libfmapi-20230405/common/config.h 2023-04-05 06:26:02.000000000 +0200 +++ new/libfmapi-20230408/common/config.h 2023-04-08 08:58:05.000000000 +0200 @@ -365,7 +365,7 @@ #define PACKAGE_NAME "libfmapi" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "libfmapi 20230405" +#define PACKAGE_STRING "libfmapi 20230408" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "libfmapi" @@ -374,7 +374,7 @@ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "20230405" +#define PACKAGE_VERSION "20230408" /* The size of `int', as computed by sizeof. */ #define SIZEOF_INT 4 @@ -400,7 +400,7 @@ /* #undef STRERROR_R_CHAR_P */ /* Version number of package */ -#define VERSION "20230405" +#define VERSION "20230408" /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/configure new/libfmapi-20230408/configure --- old/libfmapi-20230405/configure 2023-04-05 06:33:45.000000000 +0200 +++ new/libfmapi-20230408/configure 2023-04-08 08:57:54.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for libfmapi 20230405. +# Generated by GNU Autoconf 2.71 for libfmapi 20230408. # # Report bugs to <joachim.m...@gmail.com>. # @@ -621,8 +621,8 @@ # Identity of this package. PACKAGE_NAME='libfmapi' PACKAGE_TARNAME='libfmapi' -PACKAGE_VERSION='20230405' -PACKAGE_STRING='libfmapi 20230405' +PACKAGE_VERSION='20230408' +PACKAGE_STRING='libfmapi 20230408' PACKAGE_BUGREPORT='joachim.m...@gmail.com' PACKAGE_URL='' @@ -1538,7 +1538,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures libfmapi 20230405 to adapt to many kinds of systems. +\`configure' configures libfmapi 20230408 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1609,7 +1609,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of libfmapi 20230405:";; + short | recursive ) echo "Configuration of libfmapi 20230408:";; esac cat <<\_ACEOF @@ -1803,7 +1803,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -libfmapi configure 20230405 +libfmapi configure 20230408 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -2524,7 +2524,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by libfmapi $as_me 20230405, which was +It was created by libfmapi $as_me 20230408, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -4013,7 +4013,7 @@ # Define the identity of the package. PACKAGE='libfmapi' - VERSION='20230405' + VERSION='20230408' printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h @@ -43358,7 +43358,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by libfmapi $as_me 20230405, which was +This file was extended by libfmapi $as_me 20230408, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -43426,7 +43426,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -libfmapi config.status 20230405 +libfmapi config.status 20230408 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/configure.ac new/libfmapi-20230408/configure.ac --- old/libfmapi-20230405/configure.ac 2023-04-05 06:03:46.000000000 +0200 +++ new/libfmapi-20230408/configure.ac 2023-04-08 06:45:56.000000000 +0200 @@ -2,7 +2,7 @@ AC_INIT( [libfmapi], - [20230405], + [20230408], [joachim.m...@gmail.com]) AC_CONFIG_SRCDIR( diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/dpkg/changelog new/libfmapi-20230408/dpkg/changelog --- old/libfmapi-20230405/dpkg/changelog 2023-04-05 06:33:57.000000000 +0200 +++ new/libfmapi-20230408/dpkg/changelog 2023-04-08 08:58:05.000000000 +0200 @@ -1,5 +1,5 @@ -libfmapi (20230405-1) unstable; urgency=low +libfmapi (20230408-1) unstable; urgency=low * Auto-generated - -- Joachim Metz <joachim.m...@gmail.com> Wed, 05 Apr 2023 06:33:55 +0200 + -- Joachim Metz <joachim.m...@gmail.com> Sat, 08 Apr 2023 08:58:04 +0200 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/include/libfmapi/definitions.h new/libfmapi-20230408/include/libfmapi/definitions.h --- old/libfmapi-20230405/include/libfmapi/definitions.h 2023-04-05 06:33:56.000000000 +0200 +++ new/libfmapi-20230408/include/libfmapi/definitions.h 2023-04-08 08:58:05.000000000 +0200 @@ -24,11 +24,11 @@ #include <libfmapi/types.h> -#define LIBFMAPI_VERSION 20230405 +#define LIBFMAPI_VERSION 20230408 /* The version string */ -#define LIBFMAPI_VERSION_STRING "20230405" +#define LIBFMAPI_VERSION_STRING "20230408" /* The byte order definitions */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/include/libfmapi.h new/libfmapi-20230408/include/libfmapi.h --- old/libfmapi-20230405/include/libfmapi.h 2023-04-05 06:33:56.000000000 +0200 +++ new/libfmapi-20230408/include/libfmapi.h 2023-04-08 08:58:05.000000000 +0200 @@ -117,7 +117,7 @@ LIBFMAPI_EXTERN \ int libfmapi_entry_identifier_copy_from_byte_stream( libfmapi_entry_identifier_t *entry_identifier, - uint8_t *byte_stream, + const uint8_t *byte_stream, size_t byte_stream_size, libfmapi_error_t **error ); @@ -158,7 +158,7 @@ LIBFMAPI_EXTERN \ int libfmapi_one_off_entry_identifier_copy_from_byte_stream( libfmapi_one_off_entry_identifier_t *entry_identifier, - uint8_t *byte_stream, + const uint8_t *byte_stream, size_t byte_stream_size, int ascii_codepage, libfmapi_error_t **error ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/include/libfmapi.h.in new/libfmapi-20230408/include/libfmapi.h.in --- old/libfmapi-20230405/include/libfmapi.h.in 2023-04-05 06:03:47.000000000 +0200 +++ new/libfmapi-20230408/include/libfmapi.h.in 2023-04-08 07:03:12.000000000 +0200 @@ -117,7 +117,7 @@ LIBFMAPI_EXTERN \ int libfmapi_entry_identifier_copy_from_byte_stream( libfmapi_entry_identifier_t *entry_identifier, - uint8_t *byte_stream, + const uint8_t *byte_stream, size_t byte_stream_size, libfmapi_error_t **error ); @@ -158,7 +158,7 @@ LIBFMAPI_EXTERN \ int libfmapi_one_off_entry_identifier_copy_from_byte_stream( libfmapi_one_off_entry_identifier_t *entry_identifier, - uint8_t *byte_stream, + const uint8_t *byte_stream, size_t byte_stream_size, int ascii_codepage, libfmapi_error_t **error ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/libfmapi/libfmapi.rc new/libfmapi-20230408/libfmapi/libfmapi.rc --- old/libfmapi-20230405/libfmapi/libfmapi.rc 2023-04-05 06:33:57.000000000 +0200 +++ new/libfmapi-20230408/libfmapi/libfmapi.rc 2023-04-08 08:58:05.000000000 +0200 @@ -22,12 +22,12 @@ BLOCK "040904E4" BEGIN VALUE "FileDescription", "Library to support the MAPI data types\0" - VALUE "FileVersion", "20230405" "\0" + VALUE "FileVersion", "20230408" "\0" VALUE "InternalName", "libfmapi.dll\0" VALUE "LegalCopyright", "(C) 2009-2023, Joachim Metz <joachim.m...@gmail.com>\0" VALUE "OriginalFilename", "libfmapi.dll\0" VALUE "ProductName", "libfmapi\0" - VALUE "ProductVersion", "20230405" "\0" + VALUE "ProductVersion", "20230408" "\0" VALUE "Comments", "For more information visit https://github.com/libyal/libfmapi/\0" END END diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/libfmapi/libfmapi_definitions.h new/libfmapi-20230408/libfmapi/libfmapi_definitions.h --- old/libfmapi-20230405/libfmapi/libfmapi_definitions.h 2023-04-05 06:33:56.000000000 +0200 +++ new/libfmapi-20230408/libfmapi/libfmapi_definitions.h 2023-04-08 08:58:05.000000000 +0200 @@ -36,11 +36,11 @@ #else #include <byte_stream.h> -#define LIBFMAPI_VERSION 20230405 +#define LIBFMAPI_VERSION 20230408 /* The libfmapi version string */ -#define LIBFMAPI_VERSION_STRING "20230405" +#define LIBFMAPI_VERSION_STRING "20230408" /* The endian definitions */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/libfmapi/libfmapi_entry_identifier.c new/libfmapi-20230408/libfmapi/libfmapi_entry_identifier.c --- old/libfmapi-20230405/libfmapi/libfmapi_entry_identifier.c 2023-04-05 06:03:47.000000000 +0200 +++ new/libfmapi-20230408/libfmapi/libfmapi_entry_identifier.c 2023-04-08 08:02:49.000000000 +0200 @@ -142,7 +142,7 @@ */ int libfmapi_entry_identifier_copy_from_byte_stream( libfmapi_entry_identifier_t *entry_identifier, - uint8_t *byte_stream, + const uint8_t *byte_stream, size_t byte_stream_size, libcerror_error_t **error ) { @@ -180,24 +180,14 @@ return( -1 ); } - if( byte_stream_size < 20 ) + if( ( byte_stream_size < 20 ) + || ( byte_stream_size > (size_t) SSIZE_MAX ) ) { libcerror_error_set( error, LIBCERROR_ERROR_DOMAIN_ARGUMENTS, - LIBCERROR_ARGUMENT_ERROR_VALUE_TOO_SMALL, - "%s: byte stream too small.", - function ); - - return( -1 ); - } - if( byte_stream_size > (size_t) SSIZE_MAX ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_ARGUMENTS, - LIBCERROR_ARGUMENT_ERROR_VALUE_EXCEEDS_MAXIMUM, - "%s: byte stream size value exceeds maximum.", + LIBCERROR_ARGUMENT_ERROR_VALUE_OUT_OF_BOUNDS, + "%s: invalid byte stream size value out of bounds.", function ); return( -1 ); @@ -206,7 +196,7 @@ if( libcnotify_verbose != 0 ) { libcnotify_printf( - "%s: header data:\n", + "%s: entry identifier data:\n", function ); libcnotify_print_data( byte_stream, @@ -216,7 +206,7 @@ #endif if( memory_copy( internal_entry_identifier->flags, - byte_stream, + &( byte_stream[ 0 ] ), 4 ) == NULL ) { libcerror_error_set( @@ -228,11 +218,9 @@ goto on_error; } - byte_stream += 4; - if( memory_copy( internal_entry_identifier->service_provider_identifier, - byte_stream, + &( byte_stream[ 4 ] ), 16 ) == NULL ) { libcerror_error_set( @@ -244,8 +232,6 @@ goto on_error; } - byte_stream += 16; - #if defined( HAVE_DEBUG_OUTPUT ) if( libcnotify_verbose != 0 ) { @@ -335,7 +321,8 @@ libcnotify_printf( "\n" ); } -#endif +#endif /* defined( HAVE_DEBUG_OUTPUT ) */ + return( 1 ); on_error: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/libfmapi/libfmapi_entry_identifier.h new/libfmapi-20230408/libfmapi/libfmapi_entry_identifier.h --- old/libfmapi-20230405/libfmapi/libfmapi_entry_identifier.h 2023-04-05 06:03:47.000000000 +0200 +++ new/libfmapi-20230408/libfmapi/libfmapi_entry_identifier.h 2023-04-08 07:19:21.000000000 +0200 @@ -19,8 +19,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -#if !defined( _LIBFMAPI_INTERNAL_ENTRY_IDENTIFIER_H ) -#define _LIBFMAPI_INTERNAL_ENTRY_IDENTIFIER_H +#if !defined( _LIBFMAPI_ENTRY_IDENTIFIER_H ) +#define _LIBFMAPI_ENTRY_IDENTIFIER_H #include <common.h> #include <types.h> @@ -59,7 +59,7 @@ LIBFMAPI_EXTERN \ int libfmapi_entry_identifier_copy_from_byte_stream( libfmapi_entry_identifier_t *entry_identifier, - uint8_t *byte_stream, + const uint8_t *byte_stream, size_t byte_stream_size, libcerror_error_t **error ); @@ -74,5 +74,5 @@ } #endif -#endif /* !defined( _LIBFMAPI_INTERNAL_ENTRY_IDENTIFIER_H ) */ +#endif /* !defined( _LIBFMAPI_ENTRY_IDENTIFIER_H ) */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/libfmapi/libfmapi_one_off_entry_identifier.c new/libfmapi-20230408/libfmapi/libfmapi_one_off_entry_identifier.c --- old/libfmapi-20230405/libfmapi/libfmapi_one_off_entry_identifier.c 2023-04-05 06:03:47.000000000 +0200 +++ new/libfmapi-20230408/libfmapi/libfmapi_one_off_entry_identifier.c 2023-04-08 08:44:02.000000000 +0200 @@ -156,14 +156,15 @@ */ int libfmapi_one_off_entry_identifier_copy_from_byte_stream( libfmapi_one_off_entry_identifier_t *entry_identifier, - uint8_t *byte_stream, + const uint8_t *byte_stream, size_t byte_stream_size, int ascii_codepage, libcerror_error_t **error ) { libfmapi_internal_one_off_entry_identifier_t *internal_entry_identifier = NULL; static char *function = "libfmapi_one_off_entry_identifier_copy_from_byte_stream"; - size_t byte_stream_index = 0; + size_t byte_stream_offset = 0; + size_t string_size = 0; uint16_t flags = 0; uint16_t format_version = 0; uint16_t supported_flags = 0; @@ -225,24 +226,14 @@ return( -1 ); } - if( byte_stream_size < 4 ) + if( ( byte_stream_size < 4 ) + || ( byte_stream_size > (size_t) SSIZE_MAX ) ) { libcerror_error_set( error, LIBCERROR_ERROR_DOMAIN_ARGUMENTS, - LIBCERROR_ARGUMENT_ERROR_VALUE_TOO_SMALL, - "%s: byte stream too small.", - function ); - - return( -1 ); - } - if( byte_stream_size > (size_t) SSIZE_MAX ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_ARGUMENTS, - LIBCERROR_ARGUMENT_ERROR_VALUE_EXCEEDS_MAXIMUM, - "%s: byte stream size exceeds maximum.", + LIBCERROR_ARGUMENT_ERROR_VALUE_OUT_OF_BOUNDS, + "%s: invalid byte stream size value out of bounds.", function ); return( -1 ); @@ -251,7 +242,7 @@ if( libcnotify_verbose != 0 ) { libcnotify_printf( - "%s: header data:\n", + "%s: one-off entry identifier header data:\n", function ); libcnotify_print_data( byte_stream, @@ -260,19 +251,13 @@ } #endif byte_stream_copy_to_uint16_little_endian( - byte_stream, + &( byte_stream[ 0 ] ), format_version ); - byte_stream += 2; - byte_stream_size -= 2; - byte_stream_copy_to_uint16_little_endian( - byte_stream, + &( byte_stream[ 2 ] ), flags ); - byte_stream += 2; - byte_stream_size -= 2; - #if defined( HAVE_DEBUG_OUTPUT ) if( libcnotify_verbose != 0 ) { @@ -287,6 +272,8 @@ flags ); } #endif + byte_stream_offset += 4; + if( format_version != 0 ) { libcerror_error_set( @@ -315,36 +302,26 @@ goto on_error; } - if( byte_stream_size == 0 ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_ARGUMENTS, - LIBCERROR_ARGUMENT_ERROR_VALUE_TOO_SMALL, - "%s: byte stream too small.", - function ); - - goto on_error; - } internal_entry_identifier->format_version = format_version; internal_entry_identifier->flags = flags; internal_entry_identifier->ascii_codepage = ascii_codepage; - byte_stream_index = 0; + string_size = byte_stream_offset; if( ( internal_entry_identifier->flags & LIBFMAPI_ONE_OFF_ENTRY_IDENTIFIER_FLAG_UNICODE ) != 0 ) { - while( ( byte_stream_index + 1 ) < byte_stream_size ) + while( string_size < ( byte_stream_size - 3 ) ) { - if( ( byte_stream[ byte_stream_index ] == 0 ) - && ( byte_stream[ byte_stream_index + 1 ] == 0 ) ) + if( ( byte_stream[ string_size ] == 0 ) + && ( byte_stream[ string_size + 1 ] == 0 ) ) { break; } - byte_stream_index += 2; + string_size += 2; } - if( ( byte_stream[ byte_stream_index ] != 0 ) - || ( byte_stream[ byte_stream_index + 1 ] != 0 ) ) + if( ( string_size >= ( byte_stream_size - 1 ) ) + || ( byte_stream[ string_size ] != 0 ) + || ( byte_stream[ string_size + 1 ] != 0 ) ) { libcerror_error_set( error, @@ -355,19 +332,20 @@ goto on_error; } - byte_stream_index += 2; + string_size += 2; } else { - while( byte_stream_index < byte_stream_size ) + while( string_size < ( byte_stream_size - 1 ) ) { - if( byte_stream[ byte_stream_index ] == 0 ) + if( byte_stream[ string_size ] == 0 ) { break; } - byte_stream_index += 1; + string_size += 1; } - if( byte_stream[ byte_stream_index ] != 0 ) + if( ( string_size >= byte_stream_size ) + || ( byte_stream[ string_size ] != 0 ) ) { libcerror_error_set( error, @@ -378,7 +356,21 @@ return( -1 ); } - byte_stream_index += 1; + string_size += 1; + } + string_size -= byte_stream_offset; + + if( ( string_size == 0 ) + || ( string_size > MEMORY_MAXIMUM_ALLOCATION_SIZE ) ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_VALUE_OUT_OF_BOUNDS, + "%s: invalid display name size value out of bounds.", + function ); + + goto on_error; } #if defined( HAVE_DEBUG_OUTPUT ) if( libcnotify_verbose != 0 ) @@ -387,13 +379,13 @@ "%s: display name data:\n", function ); libcnotify_print_data( - byte_stream, - byte_stream_index, + &( byte_stream[ byte_stream_offset ] ), + string_size, 0 ); } #endif internal_entry_identifier->display_name = (uint8_t *) memory_allocate( - sizeof( uint8_t ) * byte_stream_index ); + sizeof( uint8_t ) * string_size ); if( internal_entry_identifier->display_name == NULL ) { @@ -408,8 +400,8 @@ } if( memory_copy( internal_entry_identifier->display_name, - byte_stream, - byte_stream_index ) == NULL ) + &( byte_stream[ byte_stream_offset ] ), + string_size ) == NULL ) { libcerror_error_set( error, @@ -420,37 +412,26 @@ goto on_error; } - internal_entry_identifier->display_name_size = byte_stream_index; + internal_entry_identifier->display_name_size = string_size; - byte_stream += byte_stream_index; - byte_stream_size -= byte_stream_index; + byte_stream_offset += string_size; - if( byte_stream_size == 0 ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_ARGUMENTS, - LIBCERROR_ARGUMENT_ERROR_VALUE_TOO_SMALL, - "%s: byte stream too small.", - function ); - - goto on_error; - } - byte_stream_index = 0; + string_size = byte_stream_offset; if( ( internal_entry_identifier->flags & LIBFMAPI_ONE_OFF_ENTRY_IDENTIFIER_FLAG_UNICODE ) != 0 ) { - while( ( byte_stream_index + 1 ) < byte_stream_size ) + while( string_size < ( byte_stream_size - 3 ) ) { - if( ( byte_stream[ byte_stream_index ] == 0 ) - && ( byte_stream[ byte_stream_index + 1 ] == 0 ) ) + if( ( byte_stream[ string_size ] == 0 ) + && ( byte_stream[ string_size + 1 ] == 0 ) ) { break; } - byte_stream_index += 2; + string_size += 2; } - if( ( byte_stream[ byte_stream_index ] != 0 ) - || ( byte_stream[ byte_stream_index + 1 ] != 0 ) ) + if( ( string_size >= ( byte_stream_size - 1 ) ) + || ( byte_stream[ string_size ] != 0 ) + || ( byte_stream[ string_size + 1 ] != 0 ) ) { libcerror_error_set( error, @@ -461,19 +442,20 @@ goto on_error; } - byte_stream_index += 2; + string_size += 2; } else { - while( byte_stream_index < byte_stream_size ) + while( string_size < ( byte_stream_size - 1 ) ) { - if( byte_stream[ byte_stream_index ] == 0 ) + if( byte_stream[ string_size ] == 0 ) { break; } - byte_stream_index += 1; + string_size += 1; } - if( byte_stream[ byte_stream_index ] != 0 ) + if( ( string_size >= byte_stream_size ) + || ( byte_stream[ string_size ] != 0 ) ) { libcerror_error_set( error, @@ -484,7 +466,21 @@ goto on_error; } - byte_stream_index += 1; + string_size += 1; + } + string_size -= byte_stream_offset; + + if( ( string_size == 0 ) + || ( string_size > MEMORY_MAXIMUM_ALLOCATION_SIZE ) ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_VALUE_OUT_OF_BOUNDS, + "%s: invalid address type size value out of bounds.", + function ); + + goto on_error; } #if defined( HAVE_DEBUG_OUTPUT ) if( libcnotify_verbose != 0 ) @@ -493,13 +489,13 @@ "%s: address type data:\n", function ); libcnotify_print_data( - byte_stream, - byte_stream_index, + &( byte_stream[ byte_stream_offset ] ), + string_size, 0 ); } #endif internal_entry_identifier->address_type = (uint8_t *) memory_allocate( - sizeof( uint8_t ) * byte_stream_index ); + sizeof( uint8_t ) * string_size ); if( internal_entry_identifier->address_type == NULL ) { @@ -514,8 +510,8 @@ } if( memory_copy( internal_entry_identifier->address_type, - byte_stream, - byte_stream_index ) == NULL ) + &( byte_stream[ byte_stream_offset ] ), + string_size ) == NULL ) { libcerror_error_set( error, @@ -526,37 +522,26 @@ goto on_error; } - internal_entry_identifier->address_type_size = byte_stream_index; + internal_entry_identifier->address_type_size = string_size; - byte_stream += byte_stream_index; - byte_stream_size -= byte_stream_index; - - if( byte_stream_size == 0 ) - { - libcerror_error_set( - error, - LIBCERROR_ERROR_DOMAIN_ARGUMENTS, - LIBCERROR_ARGUMENT_ERROR_VALUE_TOO_SMALL, - "%s: byte stream too small.", - function ); + byte_stream_offset += string_size; - goto on_error; - } - byte_stream_index = 0; + string_size = byte_stream_offset; if( ( internal_entry_identifier->flags & LIBFMAPI_ONE_OFF_ENTRY_IDENTIFIER_FLAG_UNICODE ) != 0 ) { - while( ( byte_stream_index + 1 ) < byte_stream_size ) + while( string_size < ( byte_stream_size - 3 ) ) { - if( ( byte_stream[ byte_stream_index ] == 0 ) - && ( byte_stream[ byte_stream_index + 1 ] == 0 ) ) + if( ( byte_stream[ string_size ] == 0 ) + && ( byte_stream[ string_size + 1 ] == 0 ) ) { break; } - byte_stream_index += 2; + string_size += 2; } - if( ( byte_stream[ byte_stream_index ] != 0 ) - || ( byte_stream[ byte_stream_index + 1 ] != 0 ) ) + if( ( string_size >= ( byte_stream_size - 1 ) ) + || ( byte_stream[ string_size ] != 0 ) + || ( byte_stream[ string_size + 1 ] != 0 ) ) { libcerror_error_set( error, @@ -567,19 +552,20 @@ goto on_error; } - byte_stream_index += 2; + string_size += 2; } else { - while( byte_stream_index < byte_stream_size ) + while( string_size < ( byte_stream_size - 1 ) ) { - if( byte_stream[ byte_stream_index ] == 0 ) + if( byte_stream[ string_size ] == 0 ) { break; } - byte_stream_index += 1; + string_size += 1; } - if( byte_stream[ byte_stream_index ] != 0 ) + if( ( string_size >= byte_stream_size ) + || ( byte_stream[ string_size ] != 0 ) ) { libcerror_error_set( error, @@ -590,7 +576,21 @@ goto on_error; } - byte_stream_index += 1; + string_size += 1; + } + string_size -= byte_stream_offset; + + if( ( string_size == 0 ) + || ( string_size > MEMORY_MAXIMUM_ALLOCATION_SIZE ) ) + { + libcerror_error_set( + error, + LIBCERROR_ERROR_DOMAIN_RUNTIME, + LIBCERROR_RUNTIME_ERROR_VALUE_OUT_OF_BOUNDS, + "%s: invalid email address size value out of bounds.", + function ); + + goto on_error; } #if defined( HAVE_DEBUG_OUTPUT ) if( libcnotify_verbose != 0 ) @@ -599,13 +599,13 @@ "%s: email address data:\n", function ); libcnotify_print_data( - byte_stream, - byte_stream_index, + &( byte_stream[ byte_stream_offset ] ), + string_size, 0 ); } #endif internal_entry_identifier->email_address = (uint8_t *) memory_allocate( - sizeof( uint8_t ) * byte_stream_index ); + sizeof( uint8_t ) * string_size ); if( internal_entry_identifier->email_address == NULL ) { @@ -620,8 +620,8 @@ } if( memory_copy( internal_entry_identifier->email_address, - byte_stream, - byte_stream_index ) == NULL ) + &( byte_stream[ byte_stream_offset ] ), + string_size ) == NULL ) { libcerror_error_set( error, @@ -632,22 +632,21 @@ goto on_error; } - internal_entry_identifier->email_address_size = byte_stream_index; + internal_entry_identifier->email_address_size = string_size; - byte_stream += byte_stream_index; - byte_stream_size -= byte_stream_index; + byte_stream_offset += string_size; #if defined( HAVE_DEBUG_OUTPUT ) if( libcnotify_verbose != 0 ) { - if( byte_stream_size > 0 ) + if( byte_stream_offset < byte_stream_size ) { libcnotify_printf( "%s: trailing data:\n", function ); libcnotify_print_data( - byte_stream, - byte_stream_size, + &( byte_stream[ byte_stream_offset ] ), + byte_stream_size - byte_stream_offset, 0 ); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/libfmapi/libfmapi_one_off_entry_identifier.h new/libfmapi-20230408/libfmapi/libfmapi_one_off_entry_identifier.h --- old/libfmapi-20230405/libfmapi/libfmapi_one_off_entry_identifier.h 2023-04-05 06:03:47.000000000 +0200 +++ new/libfmapi-20230408/libfmapi/libfmapi_one_off_entry_identifier.h 2023-04-08 07:19:10.000000000 +0200 @@ -19,8 +19,8 @@ * along with this program. If not, see <https://www.gnu.org/licenses/>. */ -#if !defined( _LIBFMAPI_INTERNAL_ONE_OFF_ENTRY_IDENTIFIER_H ) -#define _LIBFMAPI_INTERNAL_ONE_OFF_ENTRY_IDENTIFIER_H +#if !defined( _LIBFMAPI_ONE_OFF_ENTRY_IDENTIFIER_H ) +#define _LIBFMAPI_ONE_OFF_ENTRY_IDENTIFIER_H #include <common.h> #include <types.h> @@ -87,7 +87,7 @@ LIBFMAPI_EXTERN \ int libfmapi_one_off_entry_identifier_copy_from_byte_stream( libfmapi_one_off_entry_identifier_t *entry_identifier, - uint8_t *byte_stream, + const uint8_t *byte_stream, size_t byte_stream_size, int ascii_codepage, libcerror_error_t **error ); @@ -186,5 +186,5 @@ } #endif -#endif /* !defined( _LIBFMAPI_INTERNAL_ONE_OFF_ENTRY_IDENTIFIER_H ) */ +#endif /* !defined( _LIBFMAPI_ONE_OFF_ENTRY_IDENTIFIER_H ) */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/libfmapi.spec new/libfmapi-20230408/libfmapi.spec --- old/libfmapi-20230405/libfmapi.spec 2023-04-05 06:33:57.000000000 +0200 +++ new/libfmapi-20230408/libfmapi.spec 2023-04-08 08:58:05.000000000 +0200 @@ -1,5 +1,5 @@ Name: libfmapi -Version: 20230405 +Version: 20230408 Release: 1 Summary: Library to support the MAPI data types Group: System Environment/Libraries @@ -69,6 +69,6 @@ %{_mandir}/man3/* %changelog -* Wed Apr 5 2023 Joachim Metz <joachim.m...@gmail.com> 20230405-1 +* Sat Apr 8 2023 Joachim Metz <joachim.m...@gmail.com> 20230408-1 - Auto-generated diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/manuals/libfmapi.3 new/libfmapi-20230408/manuals/libfmapi.3 --- old/libfmapi-20230405/manuals/libfmapi.3 2023-04-05 06:03:47.000000000 +0200 +++ new/libfmapi-20230408/manuals/libfmapi.3 2023-04-08 07:03:26.000000000 +0200 @@ -29,7 +29,7 @@ .Ft int .Fn libfmapi_entry_identifier_free "libfmapi_entry_identifier_t **entry_identifier" "libfmapi_error_t **error" .Ft int -.Fn libfmapi_entry_identifier_copy_from_byte_stream "libfmapi_entry_identifier_t *entry_identifier" "uint8_t *byte_stream" "size_t byte_stream_size" "libfmapi_error_t **error" +.Fn libfmapi_entry_identifier_copy_from_byte_stream "libfmapi_entry_identifier_t *entry_identifier" "const uint8_t *byte_stream" "size_t byte_stream_size" "libfmapi_error_t **error" .Ft int .Fn libfmapi_entry_identifier_get_service_provider_identifier "libfmapi_entry_identifier_t *entry_identifier" "uint8_t *guid_data" "size_t guid_data_size" "libfmapi_error_t **error" .Pp @@ -39,7 +39,7 @@ .Ft int .Fn libfmapi_one_off_entry_identifier_free "libfmapi_one_off_entry_identifier_t **entry_identifier" "libfmapi_error_t **error" .Ft int -.Fn libfmapi_one_off_entry_identifier_copy_from_byte_stream "libfmapi_one_off_entry_identifier_t *entry_identifier" "uint8_t *byte_stream" "size_t byte_stream_size" "int ascii_codepage" "libfmapi_error_t **error" +.Fn libfmapi_one_off_entry_identifier_copy_from_byte_stream "libfmapi_one_off_entry_identifier_t *entry_identifier" "const uint8_t *byte_stream" "size_t byte_stream_size" "int ascii_codepage" "libfmapi_error_t **error" .Ft int .Fn libfmapi_one_off_entry_identifier_get_version "libfmapi_one_off_entry_identifier_t *entry_identifier" "uint16_t *format_version" "libfmapi_error_t **error" .Ft int diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/ossfuzz/Makefile.am new/libfmapi-20230408/ossfuzz/Makefile.am --- old/libfmapi-20230405/ossfuzz/Makefile.am 2023-04-05 06:05:55.000000000 +0200 +++ new/libfmapi-20230408/ossfuzz/Makefile.am 2023-04-08 07:20:55.000000000 +0200 @@ -4,7 +4,17 @@ -I$(top_srcdir)/common bin_PROGRAMS = \ - lzfu_fuzzer + entry_identifier_fuzzer \ + lzfu_fuzzer \ + one_off_entry_identifier_fuzzer + +entry_identifier_fuzzer_SOURCES = \ + entry_identifier_fuzzer.cc \ + ossfuzz_libfmapi.h + +entry_identifier_fuzzer_LDADD = \ + @LIB_FUZZING_ENGINE@ \ + ../libfmapi/libfmapi.la lzfu_fuzzer_SOURCES = \ lzfu_fuzzer.cc \ @@ -13,6 +23,14 @@ lzfu_fuzzer_LDADD = \ @LIB_FUZZING_ENGINE@ \ ../libfmapi/libfmapi.la + +one_off_entry_identifier_fuzzer_SOURCES = \ + one_off_entry_identifier_fuzzer.cc \ + ossfuzz_libfmapi.h + +one_off_entry_identifier_fuzzer_LDADD = \ + @LIB_FUZZING_ENGINE@ \ + ../libfmapi/libfmapi.la endif MAINTAINERCLEANFILES = \ @@ -22,6 +40,10 @@ /bin/rm -f Makefile splint: + @echo "Running splint on entry_identifier_fuzzer ..." + -splint -preproc -redef $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(entry_identifier_fuzzer_SOURCES) @echo "Running splint on lzfu_fuzzer ..." -splint -preproc -redef $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(lzfu_fuzzer_SOURCES) + @echo "Running splint on one_off_entry_identifier_fuzzer ..." + -splint -preproc -redef $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(one_off_entry_identifier_fuzzer_SOURCES) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/ossfuzz/Makefile.in new/libfmapi-20230408/ossfuzz/Makefile.in --- old/libfmapi-20230405/ossfuzz/Makefile.in 2023-04-05 06:33:47.000000000 +0200 +++ new/libfmapi-20230408/ossfuzz/Makefile.in 2023-04-08 08:57:56.000000000 +0200 @@ -88,7 +88,9 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -@HAVE_LIB_FUZZING_ENGINE_TRUE@bin_PROGRAMS = lzfu_fuzzer$(EXEEXT) +@HAVE_LIB_FUZZING_ENGINE_TRUE@bin_PROGRAMS = entry_identifier_fuzzer$(EXEEXT) \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ lzfu_fuzzer$(EXEEXT) \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ one_off_entry_identifier_fuzzer$(EXEEXT) subdir = ossfuzz ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/common.m4 \ @@ -116,16 +118,30 @@ CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" PROGRAMS = $(bin_PROGRAMS) +am__entry_identifier_fuzzer_SOURCES_DIST = entry_identifier_fuzzer.cc \ + ossfuzz_libfmapi.h +@HAVE_LIB_FUZZING_ENGINE_TRUE@am_entry_identifier_fuzzer_OBJECTS = entry_identifier_fuzzer.$(OBJEXT) +entry_identifier_fuzzer_OBJECTS = \ + $(am_entry_identifier_fuzzer_OBJECTS) +@HAVE_LIB_FUZZING_ENGINE_TRUE@entry_identifier_fuzzer_DEPENDENCIES = \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ ../libfmapi/libfmapi.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = am__lzfu_fuzzer_SOURCES_DIST = lzfu_fuzzer.cc ossfuzz_libfmapi.h @HAVE_LIB_FUZZING_ENGINE_TRUE@am_lzfu_fuzzer_OBJECTS = \ @HAVE_LIB_FUZZING_ENGINE_TRUE@ lzfu_fuzzer.$(OBJEXT) lzfu_fuzzer_OBJECTS = $(am_lzfu_fuzzer_OBJECTS) @HAVE_LIB_FUZZING_ENGINE_TRUE@lzfu_fuzzer_DEPENDENCIES = \ @HAVE_LIB_FUZZING_ENGINE_TRUE@ ../libfmapi/libfmapi.la -AM_V_lt = $(am__v_lt_@AM_V@) -am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) -am__v_lt_0 = --silent -am__v_lt_1 = +am__one_off_entry_identifier_fuzzer_SOURCES_DIST = \ + one_off_entry_identifier_fuzzer.cc ossfuzz_libfmapi.h +@HAVE_LIB_FUZZING_ENGINE_TRUE@am_one_off_entry_identifier_fuzzer_OBJECTS = one_off_entry_identifier_fuzzer.$(OBJEXT) +one_off_entry_identifier_fuzzer_OBJECTS = \ + $(am_one_off_entry_identifier_fuzzer_OBJECTS) +@HAVE_LIB_FUZZING_ENGINE_TRUE@one_off_entry_identifier_fuzzer_DEPENDENCIES = \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ ../libfmapi/libfmapi.la AM_V_P = $(am__v_P_@AM_V@) am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) am__v_P_0 = false @@ -141,7 +157,9 @@ DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/common depcomp = $(SHELL) $(top_srcdir)/depcomp am__maybe_remake_depfiles = depfiles -am__depfiles_remade = ./$(DEPDIR)/lzfu_fuzzer.Po +am__depfiles_remade = ./$(DEPDIR)/entry_identifier_fuzzer.Po \ + ./$(DEPDIR)/lzfu_fuzzer.Po \ + ./$(DEPDIR)/one_off_entry_identifier_fuzzer.Po am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) @@ -179,8 +197,11 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = -SOURCES = $(lzfu_fuzzer_SOURCES) -DIST_SOURCES = $(am__lzfu_fuzzer_SOURCES_DIST) +SOURCES = $(entry_identifier_fuzzer_SOURCES) $(lzfu_fuzzer_SOURCES) \ + $(one_off_entry_identifier_fuzzer_SOURCES) +DIST_SOURCES = $(am__entry_identifier_fuzzer_SOURCES_DIST) \ + $(am__lzfu_fuzzer_SOURCES_DIST) \ + $(am__one_off_entry_identifier_fuzzer_SOURCES_DIST) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ @@ -451,6 +472,14 @@ @HAVE_LIB_FUZZING_ENGINE_TRUE@ -I$(top_srcdir)/include \ @HAVE_LIB_FUZZING_ENGINE_TRUE@ -I$(top_srcdir)/common +@HAVE_LIB_FUZZING_ENGINE_TRUE@entry_identifier_fuzzer_SOURCES = \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ entry_identifier_fuzzer.cc \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ ossfuzz_libfmapi.h + +@HAVE_LIB_FUZZING_ENGINE_TRUE@entry_identifier_fuzzer_LDADD = \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ @LIB_FUZZING_ENGINE@ \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ ../libfmapi/libfmapi.la + @HAVE_LIB_FUZZING_ENGINE_TRUE@lzfu_fuzzer_SOURCES = \ @HAVE_LIB_FUZZING_ENGINE_TRUE@ lzfu_fuzzer.cc \ @HAVE_LIB_FUZZING_ENGINE_TRUE@ ossfuzz_libfmapi.h @@ -459,6 +488,14 @@ @HAVE_LIB_FUZZING_ENGINE_TRUE@ @LIB_FUZZING_ENGINE@ \ @HAVE_LIB_FUZZING_ENGINE_TRUE@ ../libfmapi/libfmapi.la +@HAVE_LIB_FUZZING_ENGINE_TRUE@one_off_entry_identifier_fuzzer_SOURCES = \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ one_off_entry_identifier_fuzzer.cc \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ ossfuzz_libfmapi.h + +@HAVE_LIB_FUZZING_ENGINE_TRUE@one_off_entry_identifier_fuzzer_LDADD = \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ @LIB_FUZZING_ENGINE@ \ +@HAVE_LIB_FUZZING_ENGINE_TRUE@ ../libfmapi/libfmapi.la + MAINTAINERCLEANFILES = \ Makefile.in @@ -545,17 +582,27 @@ echo " rm -f" $$list; \ rm -f $$list +entry_identifier_fuzzer$(EXEEXT): $(entry_identifier_fuzzer_OBJECTS) $(entry_identifier_fuzzer_DEPENDENCIES) $(EXTRA_entry_identifier_fuzzer_DEPENDENCIES) + @rm -f entry_identifier_fuzzer$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(entry_identifier_fuzzer_OBJECTS) $(entry_identifier_fuzzer_LDADD) $(LIBS) + lzfu_fuzzer$(EXEEXT): $(lzfu_fuzzer_OBJECTS) $(lzfu_fuzzer_DEPENDENCIES) $(EXTRA_lzfu_fuzzer_DEPENDENCIES) @rm -f lzfu_fuzzer$(EXEEXT) $(AM_V_CXXLD)$(CXXLINK) $(lzfu_fuzzer_OBJECTS) $(lzfu_fuzzer_LDADD) $(LIBS) +one_off_entry_identifier_fuzzer$(EXEEXT): $(one_off_entry_identifier_fuzzer_OBJECTS) $(one_off_entry_identifier_fuzzer_DEPENDENCIES) $(EXTRA_one_off_entry_identifier_fuzzer_DEPENDENCIES) + @rm -f one_off_entry_identifier_fuzzer$(EXEEXT) + $(AM_V_CXXLD)$(CXXLINK) $(one_off_entry_identifier_fuzzer_OBJECTS) $(one_off_entry_identifier_fuzzer_LDADD) $(LIBS) + mostlyclean-compile: -rm -f *.$(OBJEXT) distclean-compile: -rm -f *.tab.c +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/entry_identifier_fuzzer.Po@am__quote@ # am--include-marker @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/lzfu_fuzzer.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/one_off_entry_identifier_fuzzer.Po@am__quote@ # am--include-marker $(am__depfiles_remade): @$(MKDIR_P) $(@D) @@ -760,7 +807,9 @@ installcheck-am: maintainer-clean: maintainer-clean-am - -rm -f ./$(DEPDIR)/lzfu_fuzzer.Po + -rm -f ./$(DEPDIR)/entry_identifier_fuzzer.Po + -rm -f ./$(DEPDIR)/lzfu_fuzzer.Po + -rm -f ./$(DEPDIR)/one_off_entry_identifier_fuzzer.Po -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -802,8 +851,12 @@ /bin/rm -f Makefile splint: + @echo "Running splint on entry_identifier_fuzzer ..." + -splint -preproc -redef $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(entry_identifier_fuzzer_SOURCES) @echo "Running splint on lzfu_fuzzer ..." -splint -preproc -redef $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(lzfu_fuzzer_SOURCES) + @echo "Running splint on one_off_entry_identifier_fuzzer ..." + -splint -preproc -redef $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(one_off_entry_identifier_fuzzer_SOURCES) # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/ossfuzz/entry_identifier_fuzzer.cc new/libfmapi-20230408/ossfuzz/entry_identifier_fuzzer.cc --- old/libfmapi-20230405/ossfuzz/entry_identifier_fuzzer.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/libfmapi-20230408/ossfuzz/entry_identifier_fuzzer.cc 2023-04-08 06:47:56.000000000 +0200 @@ -0,0 +1,57 @@ +/* + * OSS-Fuzz target for libfmapi entry_identifier type + * + * Copyright (C) 2011-2023, Joachim Metz <joachim.m...@gmail.com> + * + * Refer to AUTHORS for acknowledgements. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stddef.h> +#include <stdint.h> + +/* Note that some of the OSS-Fuzz engines use C++ + */ +extern "C" { + +#include "ossfuzz_libfmapi.h" + +int LLVMFuzzerTestOneInput( + const uint8_t *data, + size_t size ) +{ + libfmapi_entry_identifier_t *entry_identifier = NULL; + + if( libfmapi_entry_identifier_initialize( + &entry_identifier, + NULL ) != 1 ) + { + return( 0 ); + } + libfmapi_entry_identifier_copy_from_byte_stream( + entry_identifier, + data, + size, + NULL ); + + libfmapi_entry_identifier_free( + &entry_identifier, + NULL ); + + return( 0 ); +} + +} /* extern "C" */ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/libfmapi-20230405/ossfuzz/one_off_entry_identifier_fuzzer.cc new/libfmapi-20230408/ossfuzz/one_off_entry_identifier_fuzzer.cc --- old/libfmapi-20230405/ossfuzz/one_off_entry_identifier_fuzzer.cc 1970-01-01 01:00:00.000000000 +0100 +++ new/libfmapi-20230408/ossfuzz/one_off_entry_identifier_fuzzer.cc 2023-04-08 07:08:50.000000000 +0200 @@ -0,0 +1,59 @@ +/* + * OSS-Fuzz target for libfmapi one_off_entry_identifier type + * + * Copyright (C) 2011-2023, Joachim Metz <joachim.m...@gmail.com> + * + * Refer to AUTHORS for acknowledgements. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see <https://www.gnu.org/licenses/>. + */ + +#include <stddef.h> +#include <stdint.h> + +/* Note that some of the OSS-Fuzz engines use C++ + */ +extern "C" { + +#include "ossfuzz_libfmapi.h" + +int LLVMFuzzerTestOneInput( + const uint8_t *data, + size_t size ) +{ + libfmapi_one_off_entry_identifier_t *one_off_entry_identifier = NULL; + + if( libfmapi_one_off_entry_identifier_initialize( + &one_off_entry_identifier, + NULL ) != 1 ) + { + return( 0 ); + } +/* TODO replace 1252 by codepage definition */ + libfmapi_one_off_entry_identifier_copy_from_byte_stream( + one_off_entry_identifier, + data, + size, + 1252, + NULL ); + + libfmapi_one_off_entry_identifier_free( + &one_off_entry_identifier, + NULL ); + + return( 0 ); +} + +} /* extern "C" */ +