/src/flac/include/share/alloc.h
Line | Count | Source (jump to first uncovered line) |
1 | | /* alloc - Convenience routines for safely allocating memory |
2 | | * Copyright (C) 2007-2009 Josh Coalson |
3 | | * Copyright (C) 2011-2025 Xiph.Org Foundation |
4 | | * |
5 | | * Redistribution and use in source and binary forms, with or without |
6 | | * modification, are permitted provided that the following conditions |
7 | | * are met: |
8 | | * |
9 | | * - Redistributions of source code must retain the above copyright |
10 | | * notice, this list of conditions and the following disclaimer. |
11 | | * |
12 | | * - Redistributions in binary form must reproduce the above copyright |
13 | | * notice, this list of conditions and the following disclaimer in the |
14 | | * documentation and/or other materials provided with the distribution. |
15 | | * |
16 | | * - Neither the name of the Xiph.org Foundation nor the names of its |
17 | | * contributors may be used to endorse or promote products derived from |
18 | | * this software without specific prior written permission. |
19 | | * |
20 | | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
21 | | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
22 | | * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
23 | | * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR |
24 | | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
25 | | * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
26 | | * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
27 | | * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
28 | | * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
29 | | * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
30 | | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
31 | | */ |
32 | | |
33 | | #ifndef FLAC__SHARE__ALLOC_H |
34 | | #define FLAC__SHARE__ALLOC_H |
35 | | |
36 | | #ifdef HAVE_CONFIG_H |
37 | | # include <config.h> |
38 | | #endif |
39 | | |
40 | | /* WATCHOUT: for c++ you may have to #define __STDC_LIMIT_MACROS 1 real early |
41 | | * before #including this file, otherwise SIZE_MAX might not be defined |
42 | | */ |
43 | | |
44 | | #include <limits.h> /* for SIZE_MAX */ |
45 | | #ifdef HAVE_STDINT_H |
46 | | #include <stdint.h> /* for SIZE_MAX in case limits.h didn't get it */ |
47 | | #endif |
48 | | #include <stdlib.h> /* for size_t, malloc(), etc */ |
49 | | #include "share/compat.h" |
50 | | |
51 | | #ifndef SIZE_MAX |
52 | | # ifndef SIZE_T_MAX |
53 | | # ifdef _MSC_VER |
54 | | # ifdef _WIN64 |
55 | | # define SIZE_T_MAX FLAC__U64L(0xffffffffffffffff) |
56 | | # else |
57 | | # define SIZE_T_MAX 0xffffffff |
58 | | # endif |
59 | | # else |
60 | | # error |
61 | | # endif |
62 | | # endif |
63 | | # define SIZE_MAX SIZE_T_MAX |
64 | | #endif |
65 | | |
66 | | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION |
67 | | |
68 | | extern int alloc_check_threshold, alloc_check_counter, alloc_check_keep_failing; |
69 | | |
70 | 13.3M | static inline int alloc_check(void) { |
71 | 13.3M | if(alloc_check_threshold == INT32_MAX) |
72 | 11.9M | return 0; |
73 | 1.42M | else if(alloc_check_counter++ == alloc_check_threshold) |
74 | 1.44k | return 1; |
75 | 1.42M | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) |
76 | 1.45k | return 1; |
77 | 1.42M | else { |
78 | 1.42M | return 0; |
79 | 1.42M | } |
80 | 13.3M | } Line | Count | Source | 70 | 81.9k | static inline int alloc_check(void) { | 71 | 81.9k | if(alloc_check_threshold == INT32_MAX) | 72 | 61.1k | return 0; | 73 | 20.7k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 38 | return 1; | 75 | 20.7k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 1 | return 1; | 77 | 20.7k | else { | 78 | 20.7k | return 0; | 79 | 20.7k | } | 80 | 81.9k | } |
foreign_metadata.c:alloc_check Line | Count | Source | 70 | 36.0k | static inline int alloc_check(void) { | 71 | 36.0k | if(alloc_check_threshold == INT32_MAX) | 72 | 34.8k | return 0; | 73 | 1.18k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 13 | return 1; | 75 | 1.17k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 1 | return 1; | 77 | 1.17k | else { | 78 | 1.17k | return 0; | 79 | 1.17k | } | 80 | 36.0k | } |
Unexecuted instantiation: tool_flac.c:alloc_check Unexecuted instantiation: utf8.c:alloc_check Line | Count | Source | 70 | 80.5k | static inline int alloc_check(void) { | 71 | 80.5k | if(alloc_check_threshold == INT32_MAX) | 72 | 79.8k | return 0; | 73 | 661 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 5 | return 1; | 75 | 656 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 87 | return 1; | 77 | 569 | else { | 78 | 569 | return 0; | 79 | 569 | } | 80 | 80.5k | } |
Line | Count | Source | 70 | 7.27k | static inline int alloc_check(void) { | 71 | 7.27k | if(alloc_check_threshold == INT32_MAX) | 72 | 6.28k | return 0; | 73 | 991 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 28 | return 1; | 75 | 963 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 142 | return 1; | 77 | 821 | else { | 78 | 821 | return 0; | 79 | 821 | } | 80 | 7.27k | } |
replaygain_analysis.c:alloc_check Line | Count | Source | 70 | 50.1k | static inline int alloc_check(void) { | 71 | 50.1k | if(alloc_check_threshold == INT32_MAX) | 72 | 49.3k | return 0; | 73 | 752 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 3 | return 1; | 75 | 749 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 1 | return 1; | 77 | 748 | else { | 78 | 748 | return 0; | 79 | 748 | } | 80 | 50.1k | } |
Line | Count | Source | 70 | 3.43M | static inline int alloc_check(void) { | 71 | 3.43M | if(alloc_check_threshold == INT32_MAX) | 72 | 2.92M | return 0; | 73 | 506k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 157 | return 1; | 75 | 506k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 506k | else { | 78 | 506k | return 0; | 79 | 506k | } | 80 | 3.43M | } |
metadata_iterators.c:alloc_check Line | Count | Source | 70 | 1.85M | static inline int alloc_check(void) { | 71 | 1.85M | if(alloc_check_threshold == INT32_MAX) | 72 | 1.85M | return 0; | 73 | 0 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 0 | return 1; | 75 | 0 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 0 | else { | 78 | 0 | return 0; | 79 | 0 | } | 80 | 1.85M | } |
metadata_object.c:alloc_check Line | Count | Source | 70 | 2.54M | static inline int alloc_check(void) { | 71 | 2.54M | if(alloc_check_threshold == INT32_MAX) | 72 | 2.52M | return 0; | 73 | 16.7k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 91 | return 1; | 75 | 16.6k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 164 | return 1; | 77 | 16.5k | else { | 78 | 16.5k | return 0; | 79 | 16.5k | } | 80 | 2.54M | } |
stream_decoder.c:alloc_check Line | Count | Source | 70 | 1.60M | static inline int alloc_check(void) { | 71 | 1.60M | if(alloc_check_threshold == INT32_MAX) | 72 | 1.37M | return 0; | 73 | 227k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 396 | return 1; | 75 | 227k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 907 | return 1; | 77 | 226k | else { | 78 | 226k | return 0; | 79 | 226k | } | 80 | 1.60M | } |
stream_encoder.c:alloc_check Line | Count | Source | 70 | 323k | static inline int alloc_check(void) { | 71 | 323k | if(alloc_check_threshold == INT32_MAX) | 72 | 242k | return 0; | 73 | 80.8k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 87 | return 1; | 75 | 80.7k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 147 | return 1; | 77 | 80.6k | else { | 78 | 80.6k | return 0; | 79 | 80.6k | } | 80 | 323k | } |
ogg_decoder_aspect.c:alloc_check Line | Count | Source | 70 | 133k | static inline int alloc_check(void) { | 71 | 133k | if(alloc_check_threshold == INT32_MAX) | 72 | 116k | return 0; | 73 | 17.7k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 82 | return 1; | 75 | 17.6k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 17.6k | else { | 78 | 17.6k | return 0; | 79 | 17.6k | } | 80 | 133k | } |
Line | Count | Source | 70 | 5.86k | static inline int alloc_check(void) { | 71 | 5.86k | if(alloc_check_threshold == INT32_MAX) | 72 | 4.90k | return 0; | 73 | 961 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 32 | return 1; | 75 | 929 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 929 | else { | 78 | 929 | return 0; | 79 | 929 | } | 80 | 5.86k | } |
Line | Count | Source | 70 | 40.9k | static inline int alloc_check(void) { | 71 | 40.9k | if(alloc_check_threshold == INT32_MAX) | 72 | 34.5k | return 0; | 73 | 6.44k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 53 | return 1; | 75 | 6.38k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 6.38k | else { | 78 | 6.38k | return 0; | 79 | 6.38k | } | 80 | 40.9k | } |
Line | Count | Source | 70 | 42.6k | static inline int alloc_check(void) { | 71 | 42.6k | if(alloc_check_threshold == INT32_MAX) | 72 | 35.4k | return 0; | 73 | 7.20k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 163 | return 1; | 75 | 7.03k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 4 | return 1; | 77 | 7.03k | else { | 78 | 7.03k | return 0; | 79 | 7.03k | } | 80 | 42.6k | } |
Line | Count | Source | 70 | 3.03M | static inline int alloc_check(void) { | 71 | 3.03M | if(alloc_check_threshold == INT32_MAX) | 72 | 2.49M | return 0; | 73 | 540k | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 292 | return 1; | 75 | 540k | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 540k | else { | 78 | 540k | return 0; | 79 | 540k | } | 80 | 3.03M | } |
Line | Count | Source | 70 | 4.67k | static inline int alloc_check(void) { | 71 | 4.67k | if(alloc_check_threshold == INT32_MAX) | 72 | 4.67k | return 0; | 73 | 0 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 0 | return 1; | 75 | 0 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 0 | else { | 78 | 0 | return 0; | 79 | 0 | } | 80 | 4.67k | } |
Line | Count | Source | 70 | 4 | static inline int alloc_check(void) { | 71 | 4 | if(alloc_check_threshold == INT32_MAX) | 72 | 4 | return 0; | 73 | 0 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 0 | return 1; | 75 | 0 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 0 | else { | 78 | 0 | return 0; | 79 | 0 | } | 80 | 4 | } |
Line | Count | Source | 70 | 50.5k | static inline int alloc_check(void) { | 71 | 50.5k | if(alloc_check_threshold == INT32_MAX) | 72 | 50.5k | return 0; | 73 | 0 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 0 | return 1; | 75 | 0 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 0 | else { | 78 | 0 | return 0; | 79 | 0 | } | 80 | 50.5k | } |
Unexecuted instantiation: alloc.c:alloc_check metadata.cpp:alloc_check() Line | Count | Source | 70 | 9.34k | static inline int alloc_check(void) { | 71 | 9.34k | if(alloc_check_threshold == INT32_MAX) | 72 | 9.34k | return 0; | 73 | 0 | else if(alloc_check_counter++ == alloc_check_threshold) | 74 | 0 | return 1; | 75 | 0 | else if(alloc_check_keep_failing && (alloc_check_counter > alloc_check_threshold)) | 76 | 0 | return 1; | 77 | 0 | else { | 78 | 0 | return 0; | 79 | 0 | } | 80 | 9.34k | } |
|
81 | | |
82 | | #endif |
83 | | |
84 | | /* avoid malloc()ing 0 bytes, see: |
85 | | * https://www.securecoding.cert.org/confluence/display/seccode/MEM04-A.+Do+not+make+assumptions+about+the+result+of+allocating+0+bytes?focusedCommentId=5407003 |
86 | | */ |
87 | | |
88 | | static inline void *safe_malloc_(size_t size) |
89 | 7.94M | { |
90 | 7.94M | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION |
91 | | /* Fail if requested */ |
92 | 7.94M | if(alloc_check()) |
93 | 665 | return NULL; |
94 | 7.94M | #endif |
95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ |
96 | 7.94M | if(!size) |
97 | 9.78k | size++; |
98 | 7.94M | return malloc(size); |
99 | 7.94M | } Unexecuted instantiation: encode.c:safe_malloc_ Unexecuted instantiation: foreign_metadata.c:safe_malloc_ Unexecuted instantiation: tool_flac.c:safe_malloc_ Unexecuted instantiation: utf8.c:safe_malloc_ Line | Count | Source | 89 | 3.09k | { | 90 | 3.09k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 3.09k | if(alloc_check()) | 93 | 0 | return NULL; | 94 | 3.09k | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 3.09k | if(!size) | 97 | 0 | size++; | 98 | 3.09k | return malloc(size); | 99 | 3.09k | } |
Line | Count | Source | 89 | 7.27k | { | 90 | 7.27k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 7.27k | if(alloc_check()) | 93 | 170 | return NULL; | 94 | 7.10k | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 7.10k | if(!size) | 97 | 0 | size++; | 98 | 7.10k | return malloc(size); | 99 | 7.27k | } |
Unexecuted instantiation: replaygain_analysis.c:safe_malloc_ Unexecuted instantiation: format.c:safe_malloc_ metadata_iterators.c:safe_malloc_ Line | Count | Source | 89 | 1.85M | { | 90 | 1.85M | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 1.85M | if(alloc_check()) | 93 | 0 | return NULL; | 94 | 1.85M | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 1.85M | if(!size) | 97 | 0 | size++; | 98 | 1.85M | return malloc(size); | 99 | 1.85M | } |
metadata_object.c:safe_malloc_ Line | Count | Source | 89 | 2.45M | { | 90 | 2.45M | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 2.45M | if(alloc_check()) | 93 | 149 | return NULL; | 94 | 2.45M | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 2.45M | if(!size) | 97 | 0 | size++; | 98 | 2.45M | return malloc(size); | 99 | 2.45M | } |
stream_decoder.c:safe_malloc_ Line | Count | Source | 89 | 565k | { | 90 | 565k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 565k | if(alloc_check()) | 93 | 18 | return NULL; | 94 | 565k | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 565k | if(!size) | 97 | 9.78k | size++; | 98 | 565k | return malloc(size); | 99 | 565k | } |
Unexecuted instantiation: stream_encoder.c:safe_malloc_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_malloc_ ogg_helper.c:safe_malloc_ Line | Count | Source | 89 | 5.86k | { | 90 | 5.86k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 5.86k | if(alloc_check()) | 93 | 32 | return NULL; | 94 | 5.83k | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 5.83k | if(!size) | 97 | 0 | size++; | 98 | 5.83k | return malloc(size); | 99 | 5.86k | } |
Unexecuted instantiation: bitwriter.c:safe_malloc_ Line | Count | Source | 89 | 163 | { | 90 | 163 | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 163 | if(alloc_check()) | 93 | 4 | return NULL; | 94 | 159 | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 159 | if(!size) | 97 | 0 | size++; | 98 | 159 | return malloc(size); | 99 | 163 | } |
Line | Count | Source | 89 | 3.03M | { | 90 | 3.03M | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 3.03M | if(alloc_check()) | 93 | 292 | return NULL; | 94 | 3.03M | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 3.03M | if(!size) | 97 | 0 | size++; | 98 | 3.03M | return malloc(size); | 99 | 3.03M | } |
operations.c:safe_malloc_ Line | Count | Source | 89 | 4.67k | { | 90 | 4.67k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 4.67k | if(alloc_check()) | 93 | 0 | return NULL; | 94 | 4.67k | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 4.67k | if(!size) | 97 | 0 | size++; | 98 | 4.67k | return malloc(size); | 99 | 4.67k | } |
Unexecuted instantiation: options.c:safe_malloc_ Unexecuted instantiation: utils.c:safe_malloc_ Unexecuted instantiation: alloc.c:safe_malloc_ metadata.cpp:safe_malloc_(unsigned long) Line | Count | Source | 89 | 9.34k | { | 90 | 9.34k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 91 | | /* Fail if requested */ | 92 | 9.34k | if(alloc_check()) | 93 | 0 | return NULL; | 94 | 9.34k | #endif | 95 | | /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 96 | 9.34k | if(!size) | 97 | 0 | size++; | 98 | 9.34k | return malloc(size); | 99 | 9.34k | } |
|
100 | | |
101 | | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION |
102 | | static inline void *malloc_(size_t size) |
103 | 452k | { |
104 | | /* Fail if requested */ |
105 | 452k | if(alloc_check()) |
106 | 52 | return NULL; |
107 | 452k | return malloc(size); |
108 | 452k | } Unexecuted instantiation: encode.c:malloc_ Unexecuted instantiation: foreign_metadata.c:malloc_ Unexecuted instantiation: tool_flac.c:malloc_ Unexecuted instantiation: utf8.c:malloc_ Unexecuted instantiation: iconvert.c:malloc_ Unexecuted instantiation: picture.c:malloc_ Unexecuted instantiation: replaygain_analysis.c:malloc_ Unexecuted instantiation: format.c:malloc_ Unexecuted instantiation: metadata_iterators.c:malloc_ Unexecuted instantiation: metadata_object.c:malloc_ Line | Count | Source | 103 | 452k | { | 104 | | /* Fail if requested */ | 105 | 452k | if(alloc_check()) | 106 | 52 | return NULL; | 107 | 452k | return malloc(size); | 108 | 452k | } |
Unexecuted instantiation: stream_encoder.c:malloc_ Unexecuted instantiation: ogg_decoder_aspect.c:malloc_ Unexecuted instantiation: ogg_helper.c:malloc_ Unexecuted instantiation: bitwriter.c:malloc_ Unexecuted instantiation: md5.c:malloc_ Unexecuted instantiation: memory.c:malloc_ Unexecuted instantiation: operations.c:malloc_ Unexecuted instantiation: options.c:malloc_ Unexecuted instantiation: utils.c:malloc_ Unexecuted instantiation: alloc.c:malloc_ Unexecuted instantiation: metadata.cpp:malloc_(unsigned long) |
109 | | #else |
110 | | #define malloc_ malloc |
111 | | #endif |
112 | | |
113 | | |
114 | | |
115 | | static inline void *safe_calloc_(size_t nmemb, size_t size) |
116 | 971k | { |
117 | 971k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION |
118 | | /* Fail if requested */ |
119 | 971k | if(alloc_check()) |
120 | 1.55k | return NULL; |
121 | 969k | #endif |
122 | 969k | if(!nmemb || !size) |
123 | 0 | return malloc(1); /* malloc(0) is undefined; FLAC src convention is to always allocate */ |
124 | 969k | return calloc(nmemb, size); |
125 | 969k | } Unexecuted instantiation: encode.c:safe_calloc_ Unexecuted instantiation: foreign_metadata.c:safe_calloc_ Unexecuted instantiation: tool_flac.c:safe_calloc_ Unexecuted instantiation: utf8.c:safe_calloc_ Unexecuted instantiation: iconvert.c:safe_calloc_ Unexecuted instantiation: picture.c:safe_calloc_ Unexecuted instantiation: replaygain_analysis.c:safe_calloc_ Unexecuted instantiation: format.c:safe_calloc_ Unexecuted instantiation: metadata_iterators.c:safe_calloc_ metadata_object.c:safe_calloc_ Line | Count | Source | 116 | 80.6k | { | 117 | 80.6k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 118 | | /* Fail if requested */ | 119 | 80.6k | if(alloc_check()) | 120 | 99 | return NULL; | 121 | 80.5k | #endif | 122 | 80.5k | if(!nmemb || !size) | 123 | 0 | return malloc(1); /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 124 | 80.5k | return calloc(nmemb, size); | 125 | 80.5k | } |
stream_decoder.c:safe_calloc_ Line | Count | Source | 116 | 567k | { | 117 | 567k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 118 | | /* Fail if requested */ | 119 | 567k | if(alloc_check()) | 120 | 1.22k | return NULL; | 121 | 565k | #endif | 122 | 565k | if(!nmemb || !size) | 123 | 0 | return malloc(1); /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 124 | 565k | return calloc(nmemb, size); | 125 | 565k | } |
stream_encoder.c:safe_calloc_ Line | Count | Source | 116 | 323k | { | 117 | 323k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 118 | | /* Fail if requested */ | 119 | 323k | if(alloc_check()) | 120 | 234 | return NULL; | 121 | 323k | #endif | 122 | 323k | if(!nmemb || !size) | 123 | 0 | return malloc(1); /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 124 | 323k | return calloc(nmemb, size); | 125 | 323k | } |
Unexecuted instantiation: ogg_decoder_aspect.c:safe_calloc_ Unexecuted instantiation: ogg_helper.c:safe_calloc_ Unexecuted instantiation: bitwriter.c:safe_calloc_ Unexecuted instantiation: md5.c:safe_calloc_ Unexecuted instantiation: memory.c:safe_calloc_ Unexecuted instantiation: operations.c:safe_calloc_ Unexecuted instantiation: options.c:safe_calloc_ Unexecuted instantiation: utils.c:safe_calloc_ Unexecuted instantiation: alloc.c:safe_calloc_ Unexecuted instantiation: metadata.cpp:safe_calloc_(unsigned long, unsigned long) |
126 | | |
127 | | /*@@@@ there's probably a better way to prevent overflows when allocating untrusted sums but this works for now */ |
128 | | |
129 | | static inline void *safe_malloc_add_2op_(size_t size1, size_t size2) |
130 | 7.74M | { |
131 | 7.74M | size2 += size1; |
132 | 7.74M | if(size2 < size1) |
133 | 0 | return 0; |
134 | 7.74M | return safe_malloc_(size2); |
135 | 7.74M | } Unexecuted instantiation: encode.c:safe_malloc_add_2op_ Unexecuted instantiation: foreign_metadata.c:safe_malloc_add_2op_ Unexecuted instantiation: tool_flac.c:safe_malloc_add_2op_ Unexecuted instantiation: utf8.c:safe_malloc_add_2op_ iconvert.c:safe_malloc_add_2op_ Line | Count | Source | 130 | 3.09k | { | 131 | 3.09k | size2 += size1; | 132 | 3.09k | if(size2 < size1) | 133 | 0 | return 0; | 134 | 3.09k | return safe_malloc_(size2); | 135 | 3.09k | } |
picture.c:safe_malloc_add_2op_ Line | Count | Source | 130 | 5.27k | { | 131 | 5.27k | size2 += size1; | 132 | 5.27k | if(size2 < size1) | 133 | 0 | return 0; | 134 | 5.27k | return safe_malloc_(size2); | 135 | 5.27k | } |
Unexecuted instantiation: replaygain_analysis.c:safe_malloc_add_2op_ Unexecuted instantiation: format.c:safe_malloc_add_2op_ metadata_iterators.c:safe_malloc_add_2op_ Line | Count | Source | 130 | 1.85M | { | 131 | 1.85M | size2 += size1; | 132 | 1.85M | if(size2 < size1) | 133 | 0 | return 0; | 134 | 1.85M | return safe_malloc_(size2); | 135 | 1.85M | } |
metadata_object.c:safe_malloc_add_2op_ Line | Count | Source | 130 | 2.28M | { | 131 | 2.28M | size2 += size1; | 132 | 2.28M | if(size2 < size1) | 133 | 0 | return 0; | 134 | 2.28M | return safe_malloc_(size2); | 135 | 2.28M | } |
stream_decoder.c:safe_malloc_add_2op_ Line | Count | Source | 130 | 545k | { | 131 | 545k | size2 += size1; | 132 | 545k | if(size2 < size1) | 133 | 0 | return 0; | 134 | 545k | return safe_malloc_(size2); | 135 | 545k | } |
Unexecuted instantiation: stream_encoder.c:safe_malloc_add_2op_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_malloc_add_2op_ Unexecuted instantiation: ogg_helper.c:safe_malloc_add_2op_ Unexecuted instantiation: bitwriter.c:safe_malloc_add_2op_ Unexecuted instantiation: md5.c:safe_malloc_add_2op_ memory.c:safe_malloc_add_2op_ Line | Count | Source | 130 | 3.03M | { | 131 | 3.03M | size2 += size1; | 132 | 3.03M | if(size2 < size1) | 133 | 0 | return 0; | 134 | 3.03M | return safe_malloc_(size2); | 135 | 3.03M | } |
Unexecuted instantiation: operations.c:safe_malloc_add_2op_ Unexecuted instantiation: options.c:safe_malloc_add_2op_ Unexecuted instantiation: utils.c:safe_malloc_add_2op_ Unexecuted instantiation: alloc.c:safe_malloc_add_2op_ metadata.cpp:safe_malloc_add_2op_(unsigned long, unsigned long) Line | Count | Source | 130 | 9.34k | { | 131 | 9.34k | size2 += size1; | 132 | 9.34k | if(size2 < size1) | 133 | 0 | return 0; | 134 | 9.34k | return safe_malloc_(size2); | 135 | 9.34k | } |
|
136 | | |
137 | | static inline void *safe_malloc_add_3op_(size_t size1, size_t size2, size_t size3) |
138 | 0 | { |
139 | 0 | size2 += size1; |
140 | 0 | if(size2 < size1) |
141 | 0 | return 0; |
142 | 0 | size3 += size2; |
143 | 0 | if(size3 < size2) |
144 | 0 | return 0; |
145 | 0 | return safe_malloc_(size3); |
146 | 0 | } Unexecuted instantiation: encode.c:safe_malloc_add_3op_ Unexecuted instantiation: foreign_metadata.c:safe_malloc_add_3op_ Unexecuted instantiation: tool_flac.c:safe_malloc_add_3op_ Unexecuted instantiation: utf8.c:safe_malloc_add_3op_ Unexecuted instantiation: iconvert.c:safe_malloc_add_3op_ Unexecuted instantiation: picture.c:safe_malloc_add_3op_ Unexecuted instantiation: replaygain_analysis.c:safe_malloc_add_3op_ Unexecuted instantiation: format.c:safe_malloc_add_3op_ Unexecuted instantiation: metadata_iterators.c:safe_malloc_add_3op_ Unexecuted instantiation: metadata_object.c:safe_malloc_add_3op_ Unexecuted instantiation: stream_decoder.c:safe_malloc_add_3op_ Unexecuted instantiation: stream_encoder.c:safe_malloc_add_3op_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_malloc_add_3op_ Unexecuted instantiation: ogg_helper.c:safe_malloc_add_3op_ Unexecuted instantiation: bitwriter.c:safe_malloc_add_3op_ Unexecuted instantiation: md5.c:safe_malloc_add_3op_ Unexecuted instantiation: memory.c:safe_malloc_add_3op_ Unexecuted instantiation: operations.c:safe_malloc_add_3op_ Unexecuted instantiation: options.c:safe_malloc_add_3op_ Unexecuted instantiation: utils.c:safe_malloc_add_3op_ Unexecuted instantiation: alloc.c:safe_malloc_add_3op_ Unexecuted instantiation: metadata.cpp:safe_malloc_add_3op_(unsigned long, unsigned long, unsigned long) |
147 | | |
148 | | static inline void *safe_malloc_add_4op_(size_t size1, size_t size2, size_t size3, size_t size4) |
149 | 7.20k | { |
150 | 7.20k | size2 += size1; |
151 | 7.20k | if(size2 < size1) |
152 | 0 | return 0; |
153 | 7.20k | size3 += size2; |
154 | 7.20k | if(size3 < size2) |
155 | 0 | return 0; |
156 | 7.20k | size4 += size3; |
157 | 7.20k | if(size4 < size3) |
158 | 0 | return 0; |
159 | 7.20k | return safe_malloc_(size4); |
160 | 7.20k | } Unexecuted instantiation: encode.c:safe_malloc_add_4op_ Unexecuted instantiation: foreign_metadata.c:safe_malloc_add_4op_ Unexecuted instantiation: tool_flac.c:safe_malloc_add_4op_ Unexecuted instantiation: utf8.c:safe_malloc_add_4op_ Unexecuted instantiation: iconvert.c:safe_malloc_add_4op_ Unexecuted instantiation: picture.c:safe_malloc_add_4op_ Unexecuted instantiation: replaygain_analysis.c:safe_malloc_add_4op_ Unexecuted instantiation: format.c:safe_malloc_add_4op_ Unexecuted instantiation: metadata_iterators.c:safe_malloc_add_4op_ metadata_object.c:safe_malloc_add_4op_ Line | Count | Source | 149 | 7.20k | { | 150 | 7.20k | size2 += size1; | 151 | 7.20k | if(size2 < size1) | 152 | 0 | return 0; | 153 | 7.20k | size3 += size2; | 154 | 7.20k | if(size3 < size2) | 155 | 0 | return 0; | 156 | 7.20k | size4 += size3; | 157 | 7.20k | if(size4 < size3) | 158 | 0 | return 0; | 159 | 7.20k | return safe_malloc_(size4); | 160 | 7.20k | } |
Unexecuted instantiation: stream_decoder.c:safe_malloc_add_4op_ Unexecuted instantiation: stream_encoder.c:safe_malloc_add_4op_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_malloc_add_4op_ Unexecuted instantiation: ogg_helper.c:safe_malloc_add_4op_ Unexecuted instantiation: bitwriter.c:safe_malloc_add_4op_ Unexecuted instantiation: md5.c:safe_malloc_add_4op_ Unexecuted instantiation: memory.c:safe_malloc_add_4op_ Unexecuted instantiation: operations.c:safe_malloc_add_4op_ Unexecuted instantiation: options.c:safe_malloc_add_4op_ Unexecuted instantiation: utils.c:safe_malloc_add_4op_ Unexecuted instantiation: alloc.c:safe_malloc_add_4op_ Unexecuted instantiation: metadata.cpp:safe_malloc_add_4op_(unsigned long, unsigned long, unsigned long, unsigned long) |
161 | | |
162 | | void *safe_malloc_mul_2op_(size_t size1, size_t size2) ; |
163 | | |
164 | | static inline void *safe_malloc_mul_3op_(size_t size1, size_t size2, size_t size3) |
165 | 0 | { |
166 | 0 | if(!size1 || !size2 || !size3) |
167 | 0 | return malloc(1); /* malloc(0) is undefined; FLAC src convention is to always allocate */ |
168 | 0 | if(size1 > SIZE_MAX / size2) |
169 | 0 | return 0; |
170 | 0 | size1 *= size2; |
171 | 0 | if(size1 > SIZE_MAX / size3) |
172 | 0 | return 0; |
173 | 0 | return malloc_(size1*size3); |
174 | 0 | } Unexecuted instantiation: encode.c:safe_malloc_mul_3op_ Unexecuted instantiation: foreign_metadata.c:safe_malloc_mul_3op_ Unexecuted instantiation: tool_flac.c:safe_malloc_mul_3op_ Unexecuted instantiation: utf8.c:safe_malloc_mul_3op_ Unexecuted instantiation: iconvert.c:safe_malloc_mul_3op_ Unexecuted instantiation: picture.c:safe_malloc_mul_3op_ Unexecuted instantiation: replaygain_analysis.c:safe_malloc_mul_3op_ Unexecuted instantiation: format.c:safe_malloc_mul_3op_ Unexecuted instantiation: metadata_iterators.c:safe_malloc_mul_3op_ Unexecuted instantiation: metadata_object.c:safe_malloc_mul_3op_ Unexecuted instantiation: stream_decoder.c:safe_malloc_mul_3op_ Unexecuted instantiation: stream_encoder.c:safe_malloc_mul_3op_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_malloc_mul_3op_ Unexecuted instantiation: ogg_helper.c:safe_malloc_mul_3op_ Unexecuted instantiation: bitwriter.c:safe_malloc_mul_3op_ Unexecuted instantiation: md5.c:safe_malloc_mul_3op_ Unexecuted instantiation: memory.c:safe_malloc_mul_3op_ Unexecuted instantiation: operations.c:safe_malloc_mul_3op_ Unexecuted instantiation: options.c:safe_malloc_mul_3op_ Unexecuted instantiation: utils.c:safe_malloc_mul_3op_ Unexecuted instantiation: alloc.c:safe_malloc_mul_3op_ Unexecuted instantiation: metadata.cpp:safe_malloc_mul_3op_(unsigned long, unsigned long, unsigned long) |
175 | | |
176 | | /* size1*size2 + size3 */ |
177 | | static inline void *safe_malloc_mul2add_(size_t size1, size_t size2, size_t size3) |
178 | 0 | { |
179 | 0 | if(!size1 || !size2) |
180 | 0 | return safe_malloc_(size3); |
181 | 0 | if(size1 > SIZE_MAX / size2) |
182 | 0 | return 0; |
183 | 0 | return safe_malloc_add_2op_(size1*size2, size3); |
184 | 0 | } Unexecuted instantiation: encode.c:safe_malloc_mul2add_ Unexecuted instantiation: foreign_metadata.c:safe_malloc_mul2add_ Unexecuted instantiation: tool_flac.c:safe_malloc_mul2add_ Unexecuted instantiation: utf8.c:safe_malloc_mul2add_ Unexecuted instantiation: iconvert.c:safe_malloc_mul2add_ Unexecuted instantiation: picture.c:safe_malloc_mul2add_ Unexecuted instantiation: replaygain_analysis.c:safe_malloc_mul2add_ Unexecuted instantiation: format.c:safe_malloc_mul2add_ Unexecuted instantiation: metadata_iterators.c:safe_malloc_mul2add_ Unexecuted instantiation: metadata_object.c:safe_malloc_mul2add_ Unexecuted instantiation: stream_decoder.c:safe_malloc_mul2add_ Unexecuted instantiation: stream_encoder.c:safe_malloc_mul2add_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_malloc_mul2add_ Unexecuted instantiation: ogg_helper.c:safe_malloc_mul2add_ Unexecuted instantiation: bitwriter.c:safe_malloc_mul2add_ Unexecuted instantiation: md5.c:safe_malloc_mul2add_ Unexecuted instantiation: memory.c:safe_malloc_mul2add_ Unexecuted instantiation: operations.c:safe_malloc_mul2add_ Unexecuted instantiation: options.c:safe_malloc_mul2add_ Unexecuted instantiation: utils.c:safe_malloc_mul2add_ Unexecuted instantiation: alloc.c:safe_malloc_mul2add_ Unexecuted instantiation: metadata.cpp:safe_malloc_mul2add_(unsigned long, unsigned long, unsigned long) |
185 | | |
186 | | /* size1 * (size2 + size3) */ |
187 | | static inline void *safe_malloc_muladd2_(size_t size1, size_t size2, size_t size3) |
188 | 452k | { |
189 | 452k | if(!size1 || (!size2 && !size3)) |
190 | 0 | return malloc(1); /* malloc(0) is undefined; FLAC src convention is to always allocate */ |
191 | 452k | size2 += size3; |
192 | 452k | if(size2 < size3) |
193 | 0 | return 0; |
194 | 452k | if(size1 > SIZE_MAX / size2) |
195 | 0 | return 0; |
196 | 452k | return malloc_(size1*size2); |
197 | 452k | } Unexecuted instantiation: encode.c:safe_malloc_muladd2_ Unexecuted instantiation: foreign_metadata.c:safe_malloc_muladd2_ Unexecuted instantiation: tool_flac.c:safe_malloc_muladd2_ Unexecuted instantiation: utf8.c:safe_malloc_muladd2_ Unexecuted instantiation: iconvert.c:safe_malloc_muladd2_ Unexecuted instantiation: picture.c:safe_malloc_muladd2_ Unexecuted instantiation: replaygain_analysis.c:safe_malloc_muladd2_ Unexecuted instantiation: format.c:safe_malloc_muladd2_ Unexecuted instantiation: metadata_iterators.c:safe_malloc_muladd2_ Unexecuted instantiation: metadata_object.c:safe_malloc_muladd2_ stream_decoder.c:safe_malloc_muladd2_ Line | Count | Source | 188 | 452k | { | 189 | 452k | if(!size1 || (!size2 && !size3)) | 190 | 0 | return malloc(1); /* malloc(0) is undefined; FLAC src convention is to always allocate */ | 191 | 452k | size2 += size3; | 192 | 452k | if(size2 < size3) | 193 | 0 | return 0; | 194 | 452k | if(size1 > SIZE_MAX / size2) | 195 | 0 | return 0; | 196 | 452k | return malloc_(size1*size2); | 197 | 452k | } |
Unexecuted instantiation: stream_encoder.c:safe_malloc_muladd2_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_malloc_muladd2_ Unexecuted instantiation: ogg_helper.c:safe_malloc_muladd2_ Unexecuted instantiation: bitwriter.c:safe_malloc_muladd2_ Unexecuted instantiation: md5.c:safe_malloc_muladd2_ Unexecuted instantiation: memory.c:safe_malloc_muladd2_ Unexecuted instantiation: operations.c:safe_malloc_muladd2_ Unexecuted instantiation: options.c:safe_malloc_muladd2_ Unexecuted instantiation: utils.c:safe_malloc_muladd2_ Unexecuted instantiation: alloc.c:safe_malloc_muladd2_ Unexecuted instantiation: metadata.cpp:safe_malloc_muladd2_(unsigned long, unsigned long, unsigned long) |
198 | | |
199 | | static inline void *safe_realloc_(void *ptr, size_t size) |
200 | 3.60M | { |
201 | 3.60M | void *oldptr; |
202 | 3.60M | void *newptr; |
203 | 3.60M | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION |
204 | | /* Fail if requested */ |
205 | 3.60M | if(alloc_check() && size > 0) { |
206 | 339 | free(ptr); |
207 | 339 | return NULL; |
208 | 339 | } |
209 | 3.60M | #endif |
210 | 3.60M | oldptr = ptr; |
211 | 3.60M | newptr = realloc(ptr, size); |
212 | 3.60M | if(size > 0 && newptr == 0) |
213 | 0 | free(oldptr); |
214 | 3.60M | return newptr; |
215 | 3.60M | } Unexecuted instantiation: encode.c:safe_realloc_ Unexecuted instantiation: foreign_metadata.c:safe_realloc_ Unexecuted instantiation: tool_flac.c:safe_realloc_ Unexecuted instantiation: utf8.c:safe_realloc_ Unexecuted instantiation: iconvert.c:safe_realloc_ Unexecuted instantiation: picture.c:safe_realloc_ replaygain_analysis.c:safe_realloc_ Line | Count | Source | 200 | 50.1k | { | 201 | 50.1k | void *oldptr; | 202 | 50.1k | void *newptr; | 203 | 50.1k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 204 | | /* Fail if requested */ | 205 | 50.1k | if(alloc_check() && size > 0) { | 206 | 4 | free(ptr); | 207 | 4 | return NULL; | 208 | 4 | } | 209 | 50.1k | #endif | 210 | 50.1k | oldptr = ptr; | 211 | 50.1k | newptr = realloc(ptr, size); | 212 | 50.1k | if(size > 0 && newptr == 0) | 213 | 0 | free(oldptr); | 214 | 50.1k | return newptr; | 215 | 50.1k | } |
Line | Count | Source | 200 | 3.43M | { | 201 | 3.43M | void *oldptr; | 202 | 3.43M | void *newptr; | 203 | 3.43M | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 204 | | /* Fail if requested */ | 205 | 3.43M | if(alloc_check() && size > 0) { | 206 | 157 | free(ptr); | 207 | 157 | return NULL; | 208 | 157 | } | 209 | 3.43M | #endif | 210 | 3.43M | oldptr = ptr; | 211 | 3.43M | newptr = realloc(ptr, size); | 212 | 3.43M | if(size > 0 && newptr == 0) | 213 | 0 | free(oldptr); | 214 | 3.43M | return newptr; | 215 | 3.43M | } |
Unexecuted instantiation: metadata_iterators.c:safe_realloc_ Unexecuted instantiation: metadata_object.c:safe_realloc_ stream_decoder.c:safe_realloc_ Line | Count | Source | 200 | 15.5k | { | 201 | 15.5k | void *oldptr; | 202 | 15.5k | void *newptr; | 203 | 15.5k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 204 | | /* Fail if requested */ | 205 | 15.5k | if(alloc_check() && size > 0) { | 206 | 9 | free(ptr); | 207 | 9 | return NULL; | 208 | 9 | } | 209 | 15.5k | #endif | 210 | 15.5k | oldptr = ptr; | 211 | 15.5k | newptr = realloc(ptr, size); | 212 | 15.5k | if(size > 0 && newptr == 0) | 213 | 0 | free(oldptr); | 214 | 15.5k | return newptr; | 215 | 15.5k | } |
Unexecuted instantiation: stream_encoder.c:safe_realloc_ ogg_decoder_aspect.c:safe_realloc_ Line | Count | Source | 200 | 10.9k | { | 201 | 10.9k | void *oldptr; | 202 | 10.9k | void *newptr; | 203 | 10.9k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 204 | | /* Fail if requested */ | 205 | 10.9k | if(alloc_check() && size > 0) { | 206 | 6 | free(ptr); | 207 | 6 | return NULL; | 208 | 6 | } | 209 | 10.9k | #endif | 210 | 10.9k | oldptr = ptr; | 211 | 10.9k | newptr = realloc(ptr, size); | 212 | 10.9k | if(size > 0 && newptr == 0) | 213 | 0 | free(oldptr); | 214 | 10.9k | return newptr; | 215 | 10.9k | } |
Unexecuted instantiation: ogg_helper.c:safe_realloc_ Unexecuted instantiation: bitwriter.c:safe_realloc_ Line | Count | Source | 200 | 42.5k | { | 201 | 42.5k | void *oldptr; | 202 | 42.5k | void *newptr; | 203 | 42.5k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 204 | | /* Fail if requested */ | 205 | 42.5k | if(alloc_check() && size > 0) { | 206 | 163 | free(ptr); | 207 | 163 | return NULL; | 208 | 163 | } | 209 | 42.3k | #endif | 210 | 42.3k | oldptr = ptr; | 211 | 42.3k | newptr = realloc(ptr, size); | 212 | 42.3k | if(size > 0 && newptr == 0) | 213 | 0 | free(oldptr); | 214 | 42.3k | return newptr; | 215 | 42.5k | } |
Unexecuted instantiation: memory.c:safe_realloc_ Unexecuted instantiation: operations.c:safe_realloc_ Line | Count | Source | 200 | 4 | { | 201 | 4 | void *oldptr; | 202 | 4 | void *newptr; | 203 | 4 | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 204 | | /* Fail if requested */ | 205 | 4 | if(alloc_check() && size > 0) { | 206 | 0 | free(ptr); | 207 | 0 | return NULL; | 208 | 0 | } | 209 | 4 | #endif | 210 | 4 | oldptr = ptr; | 211 | 4 | newptr = realloc(ptr, size); | 212 | 4 | if(size > 0 && newptr == 0) | 213 | 0 | free(oldptr); | 214 | 4 | return newptr; | 215 | 4 | } |
Line | Count | Source | 200 | 50.5k | { | 201 | 50.5k | void *oldptr; | 202 | 50.5k | void *newptr; | 203 | 50.5k | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION | 204 | | /* Fail if requested */ | 205 | 50.5k | if(alloc_check() && size > 0) { | 206 | 0 | free(ptr); | 207 | 0 | return NULL; | 208 | 0 | } | 209 | 50.5k | #endif | 210 | 50.5k | oldptr = ptr; | 211 | 50.5k | newptr = realloc(ptr, size); | 212 | 50.5k | if(size > 0 && newptr == 0) | 213 | 0 | free(oldptr); | 214 | 50.5k | return newptr; | 215 | 50.5k | } |
Unexecuted instantiation: alloc.c:safe_realloc_ Unexecuted instantiation: metadata.cpp:safe_realloc_(void*, unsigned long) |
216 | | |
217 | | #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION |
218 | | static inline void *realloc_(void *ptr, size_t size) |
219 | 366k | { |
220 | | /* Fail if requested */ |
221 | 366k | if(alloc_check()) |
222 | 281 | return NULL; |
223 | 366k | return realloc(ptr, size); |
224 | 366k | } Line | Count | Source | 219 | 81.9k | { | 220 | | /* Fail if requested */ | 221 | 81.9k | if(alloc_check()) | 222 | 39 | return NULL; | 223 | 81.9k | return realloc(ptr, size); | 224 | 81.9k | } |
foreign_metadata.c:realloc_ Line | Count | Source | 219 | 36.0k | { | 220 | | /* Fail if requested */ | 221 | 36.0k | if(alloc_check()) | 222 | 14 | return NULL; | 223 | 36.0k | return realloc(ptr, size); | 224 | 36.0k | } |
Unexecuted instantiation: tool_flac.c:realloc_ Unexecuted instantiation: utf8.c:realloc_ Line | Count | Source | 219 | 77.4k | { | 220 | | /* Fail if requested */ | 221 | 77.4k | if(alloc_check()) | 222 | 92 | return NULL; | 223 | 77.3k | return realloc(ptr, size); | 224 | 77.4k | } |
Unexecuted instantiation: picture.c:realloc_ Unexecuted instantiation: replaygain_analysis.c:realloc_ Unexecuted instantiation: format.c:realloc_ Unexecuted instantiation: metadata_iterators.c:realloc_ metadata_object.c:realloc_ Line | Count | Source | 219 | 7.14k | { | 220 | | /* Fail if requested */ | 221 | 7.14k | if(alloc_check()) | 222 | 7 | return NULL; | 223 | 7.14k | return realloc(ptr, size); | 224 | 7.14k | } |
Unexecuted instantiation: stream_decoder.c:realloc_ Unexecuted instantiation: stream_encoder.c:realloc_ ogg_decoder_aspect.c:realloc_ Line | Count | Source | 219 | 122k | { | 220 | | /* Fail if requested */ | 221 | 122k | if(alloc_check()) | 222 | 76 | return NULL; | 223 | 122k | return realloc(ptr, size); | 224 | 122k | } |
Unexecuted instantiation: ogg_helper.c:realloc_ Line | Count | Source | 219 | 40.9k | { | 220 | | /* Fail if requested */ | 221 | 40.9k | if(alloc_check()) | 222 | 53 | return NULL; | 223 | 40.9k | return realloc(ptr, size); | 224 | 40.9k | } |
Unexecuted instantiation: md5.c:realloc_ Unexecuted instantiation: memory.c:realloc_ Unexecuted instantiation: operations.c:realloc_ Unexecuted instantiation: options.c:realloc_ Unexecuted instantiation: utils.c:realloc_ Unexecuted instantiation: alloc.c:realloc_ Unexecuted instantiation: metadata.cpp:realloc_(void*, unsigned long) |
225 | | #else |
226 | | #define realloc_ realloc |
227 | | #endif |
228 | | |
229 | | |
230 | | static inline void *safe_realloc_nofree_add_2op_(void *ptr, size_t size1, size_t size2) |
231 | 84.5k | { |
232 | 84.5k | size2 += size1; |
233 | 84.5k | if(size2 < size1) |
234 | 0 | return 0; |
235 | 84.5k | return realloc_(ptr, size2); |
236 | 84.5k | } Unexecuted instantiation: encode.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: foreign_metadata.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: tool_flac.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: utf8.c:safe_realloc_nofree_add_2op_ iconvert.c:safe_realloc_nofree_add_2op_ Line | Count | Source | 231 | 77.4k | { | 232 | 77.4k | size2 += size1; | 233 | 77.4k | if(size2 < size1) | 234 | 0 | return 0; | 235 | 77.4k | return realloc_(ptr, size2); | 236 | 77.4k | } |
Unexecuted instantiation: picture.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: replaygain_analysis.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: format.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: metadata_iterators.c:safe_realloc_nofree_add_2op_ metadata_object.c:safe_realloc_nofree_add_2op_ Line | Count | Source | 231 | 7.14k | { | 232 | 7.14k | size2 += size1; | 233 | 7.14k | if(size2 < size1) | 234 | 0 | return 0; | 235 | 7.14k | return realloc_(ptr, size2); | 236 | 7.14k | } |
Unexecuted instantiation: stream_decoder.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: stream_encoder.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: ogg_helper.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: bitwriter.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: md5.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: memory.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: operations.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: options.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: utils.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: alloc.c:safe_realloc_nofree_add_2op_ Unexecuted instantiation: metadata.cpp:safe_realloc_nofree_add_2op_(void*, unsigned long, unsigned long) |
237 | | |
238 | | static inline void *safe_realloc_add_3op_(void *ptr, size_t size1, size_t size2, size_t size3) |
239 | 50.5k | { |
240 | 50.5k | size2 += size1; |
241 | 50.5k | if(size2 < size1) { |
242 | 0 | free(ptr); |
243 | 0 | return 0; |
244 | 0 | } |
245 | 50.5k | size3 += size2; |
246 | 50.5k | if(size3 < size2) { |
247 | 0 | free(ptr); |
248 | 0 | return 0; |
249 | 0 | } |
250 | 50.5k | return safe_realloc_(ptr, size3); |
251 | 50.5k | } Unexecuted instantiation: encode.c:safe_realloc_add_3op_ Unexecuted instantiation: foreign_metadata.c:safe_realloc_add_3op_ Unexecuted instantiation: tool_flac.c:safe_realloc_add_3op_ Unexecuted instantiation: utf8.c:safe_realloc_add_3op_ Unexecuted instantiation: iconvert.c:safe_realloc_add_3op_ Unexecuted instantiation: picture.c:safe_realloc_add_3op_ Unexecuted instantiation: replaygain_analysis.c:safe_realloc_add_3op_ Unexecuted instantiation: format.c:safe_realloc_add_3op_ Unexecuted instantiation: metadata_iterators.c:safe_realloc_add_3op_ Unexecuted instantiation: metadata_object.c:safe_realloc_add_3op_ Unexecuted instantiation: stream_decoder.c:safe_realloc_add_3op_ Unexecuted instantiation: stream_encoder.c:safe_realloc_add_3op_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_realloc_add_3op_ Unexecuted instantiation: ogg_helper.c:safe_realloc_add_3op_ Unexecuted instantiation: bitwriter.c:safe_realloc_add_3op_ Unexecuted instantiation: md5.c:safe_realloc_add_3op_ Unexecuted instantiation: memory.c:safe_realloc_add_3op_ Unexecuted instantiation: operations.c:safe_realloc_add_3op_ Unexecuted instantiation: options.c:safe_realloc_add_3op_ utils.c:safe_realloc_add_3op_ Line | Count | Source | 239 | 50.5k | { | 240 | 50.5k | size2 += size1; | 241 | 50.5k | if(size2 < size1) { | 242 | 0 | free(ptr); | 243 | 0 | return 0; | 244 | 0 | } | 245 | 50.5k | size3 += size2; | 246 | 50.5k | if(size3 < size2) { | 247 | 0 | free(ptr); | 248 | 0 | return 0; | 249 | 0 | } | 250 | 50.5k | return safe_realloc_(ptr, size3); | 251 | 50.5k | } |
Unexecuted instantiation: alloc.c:safe_realloc_add_3op_ Unexecuted instantiation: metadata.cpp:safe_realloc_add_3op_(void*, unsigned long, unsigned long, unsigned long) |
252 | | |
253 | | static inline void *safe_realloc_nofree_add_3op_(void *ptr, size_t size1, size_t size2, size_t size3) |
254 | 0 | { |
255 | 0 | size2 += size1; |
256 | 0 | if(size2 < size1) |
257 | 0 | return 0; |
258 | 0 | size3 += size2; |
259 | 0 | if(size3 < size2) |
260 | 0 | return 0; |
261 | 0 | return realloc_(ptr, size3); |
262 | 0 | } Unexecuted instantiation: encode.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: foreign_metadata.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: tool_flac.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: utf8.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: iconvert.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: picture.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: replaygain_analysis.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: format.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: metadata_iterators.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: metadata_object.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: stream_decoder.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: stream_encoder.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: ogg_helper.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: bitwriter.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: md5.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: memory.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: operations.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: options.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: utils.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: alloc.c:safe_realloc_nofree_add_3op_ Unexecuted instantiation: metadata.cpp:safe_realloc_nofree_add_3op_(void*, unsigned long, unsigned long, unsigned long) |
263 | | |
264 | | static inline void *safe_realloc_nofree_add_4op_(void *ptr, size_t size1, size_t size2, size_t size3, size_t size4) |
265 | 0 | { |
266 | 0 | size2 += size1; |
267 | 0 | if(size2 < size1) |
268 | 0 | return 0; |
269 | 0 | size3 += size2; |
270 | 0 | if(size3 < size2) |
271 | 0 | return 0; |
272 | 0 | size4 += size3; |
273 | 0 | if(size4 < size3) |
274 | 0 | return 0; |
275 | 0 | return realloc_(ptr, size4); |
276 | 0 | } Unexecuted instantiation: encode.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: foreign_metadata.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: tool_flac.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: utf8.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: iconvert.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: picture.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: replaygain_analysis.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: format.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: metadata_iterators.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: metadata_object.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: stream_decoder.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: stream_encoder.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: ogg_helper.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: bitwriter.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: md5.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: memory.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: operations.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: options.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: utils.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: alloc.c:safe_realloc_nofree_add_4op_ Unexecuted instantiation: metadata.cpp:safe_realloc_nofree_add_4op_(void*, unsigned long, unsigned long, unsigned long, unsigned long) |
277 | | |
278 | | static inline void *safe_realloc_mul_2op_(void *ptr, size_t size1, size_t size2) |
279 | 26.5k | { |
280 | 26.5k | if(!size1 || !size2) |
281 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ |
282 | 26.5k | if(size1 > SIZE_MAX / size2) { |
283 | 0 | free(ptr); |
284 | 0 | return 0; |
285 | 0 | } |
286 | 26.5k | return safe_realloc_(ptr, size1*size2); |
287 | 26.5k | } Unexecuted instantiation: encode.c:safe_realloc_mul_2op_ Unexecuted instantiation: foreign_metadata.c:safe_realloc_mul_2op_ Unexecuted instantiation: tool_flac.c:safe_realloc_mul_2op_ Unexecuted instantiation: utf8.c:safe_realloc_mul_2op_ Unexecuted instantiation: iconvert.c:safe_realloc_mul_2op_ Unexecuted instantiation: picture.c:safe_realloc_mul_2op_ Unexecuted instantiation: replaygain_analysis.c:safe_realloc_mul_2op_ Unexecuted instantiation: format.c:safe_realloc_mul_2op_ Unexecuted instantiation: metadata_iterators.c:safe_realloc_mul_2op_ Unexecuted instantiation: metadata_object.c:safe_realloc_mul_2op_ stream_decoder.c:safe_realloc_mul_2op_ Line | Count | Source | 279 | 15.5k | { | 280 | 15.5k | if(!size1 || !size2) | 281 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 282 | 15.5k | if(size1 > SIZE_MAX / size2) { | 283 | 0 | free(ptr); | 284 | 0 | return 0; | 285 | 0 | } | 286 | 15.5k | return safe_realloc_(ptr, size1*size2); | 287 | 15.5k | } |
Unexecuted instantiation: stream_encoder.c:safe_realloc_mul_2op_ ogg_decoder_aspect.c:safe_realloc_mul_2op_ Line | Count | Source | 279 | 10.9k | { | 280 | 10.9k | if(!size1 || !size2) | 281 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 282 | 10.9k | if(size1 > SIZE_MAX / size2) { | 283 | 0 | free(ptr); | 284 | 0 | return 0; | 285 | 0 | } | 286 | 10.9k | return safe_realloc_(ptr, size1*size2); | 287 | 10.9k | } |
Unexecuted instantiation: ogg_helper.c:safe_realloc_mul_2op_ Unexecuted instantiation: bitwriter.c:safe_realloc_mul_2op_ Unexecuted instantiation: md5.c:safe_realloc_mul_2op_ Unexecuted instantiation: memory.c:safe_realloc_mul_2op_ Unexecuted instantiation: operations.c:safe_realloc_mul_2op_ options.c:safe_realloc_mul_2op_ Line | Count | Source | 279 | 4 | { | 280 | 4 | if(!size1 || !size2) | 281 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 282 | 4 | if(size1 > SIZE_MAX / size2) { | 283 | 0 | free(ptr); | 284 | 0 | return 0; | 285 | 0 | } | 286 | 4 | return safe_realloc_(ptr, size1*size2); | 287 | 4 | } |
Unexecuted instantiation: utils.c:safe_realloc_mul_2op_ Unexecuted instantiation: alloc.c:safe_realloc_mul_2op_ Unexecuted instantiation: metadata.cpp:safe_realloc_mul_2op_(void*, unsigned long, unsigned long) |
288 | | |
289 | | static inline void *safe_realloc_nofree_mul_2op_(void *ptr, size_t size1, size_t size2) |
290 | 281k | { |
291 | 281k | if(!size1 || !size2) |
292 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ |
293 | 281k | if(size1 > SIZE_MAX / size2) |
294 | 0 | return 0; |
295 | 281k | return realloc_(ptr, size1*size2); |
296 | 281k | } encode.c:safe_realloc_nofree_mul_2op_ Line | Count | Source | 290 | 81.9k | { | 291 | 81.9k | if(!size1 || !size2) | 292 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 293 | 81.9k | if(size1 > SIZE_MAX / size2) | 294 | 0 | return 0; | 295 | 81.9k | return realloc_(ptr, size1*size2); | 296 | 81.9k | } |
foreign_metadata.c:safe_realloc_nofree_mul_2op_ Line | Count | Source | 290 | 36.0k | { | 291 | 36.0k | if(!size1 || !size2) | 292 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 293 | 36.0k | if(size1 > SIZE_MAX / size2) | 294 | 0 | return 0; | 295 | 36.0k | return realloc_(ptr, size1*size2); | 296 | 36.0k | } |
Unexecuted instantiation: tool_flac.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: utf8.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: iconvert.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: picture.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: replaygain_analysis.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: format.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: metadata_iterators.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: metadata_object.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: stream_decoder.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: stream_encoder.c:safe_realloc_nofree_mul_2op_ ogg_decoder_aspect.c:safe_realloc_nofree_mul_2op_ Line | Count | Source | 290 | 122k | { | 291 | 122k | if(!size1 || !size2) | 292 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 293 | 122k | if(size1 > SIZE_MAX / size2) | 294 | 0 | return 0; | 295 | 122k | return realloc_(ptr, size1*size2); | 296 | 122k | } |
Unexecuted instantiation: ogg_helper.c:safe_realloc_nofree_mul_2op_ bitwriter.c:safe_realloc_nofree_mul_2op_ Line | Count | Source | 290 | 40.9k | { | 291 | 40.9k | if(!size1 || !size2) | 292 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 293 | 40.9k | if(size1 > SIZE_MAX / size2) | 294 | 0 | return 0; | 295 | 40.9k | return realloc_(ptr, size1*size2); | 296 | 40.9k | } |
Unexecuted instantiation: md5.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: memory.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: operations.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: options.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: utils.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: alloc.c:safe_realloc_nofree_mul_2op_ Unexecuted instantiation: metadata.cpp:safe_realloc_nofree_mul_2op_(void*, unsigned long, unsigned long) |
297 | | |
298 | | /* size1 * (size2 + size3) */ |
299 | | static inline void *safe_realloc_muladd2_(void *ptr, size_t size1, size_t size2, size_t size3) |
300 | 0 | { |
301 | 0 | if(!size1 || (!size2 && !size3)) |
302 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ |
303 | 0 | size2 += size3; |
304 | 0 | if(size2 < size3) { |
305 | 0 | free(ptr); |
306 | 0 | return 0; |
307 | 0 | } |
308 | 0 | return safe_realloc_mul_2op_(ptr, size1, size2); |
309 | 0 | } Unexecuted instantiation: encode.c:safe_realloc_muladd2_ Unexecuted instantiation: foreign_metadata.c:safe_realloc_muladd2_ Unexecuted instantiation: tool_flac.c:safe_realloc_muladd2_ Unexecuted instantiation: utf8.c:safe_realloc_muladd2_ Unexecuted instantiation: iconvert.c:safe_realloc_muladd2_ Unexecuted instantiation: picture.c:safe_realloc_muladd2_ Unexecuted instantiation: replaygain_analysis.c:safe_realloc_muladd2_ Unexecuted instantiation: format.c:safe_realloc_muladd2_ Unexecuted instantiation: metadata_iterators.c:safe_realloc_muladd2_ Unexecuted instantiation: metadata_object.c:safe_realloc_muladd2_ Unexecuted instantiation: stream_decoder.c:safe_realloc_muladd2_ Unexecuted instantiation: stream_encoder.c:safe_realloc_muladd2_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_realloc_muladd2_ Unexecuted instantiation: ogg_helper.c:safe_realloc_muladd2_ Unexecuted instantiation: bitwriter.c:safe_realloc_muladd2_ Unexecuted instantiation: md5.c:safe_realloc_muladd2_ Unexecuted instantiation: memory.c:safe_realloc_muladd2_ Unexecuted instantiation: operations.c:safe_realloc_muladd2_ Unexecuted instantiation: options.c:safe_realloc_muladd2_ Unexecuted instantiation: utils.c:safe_realloc_muladd2_ Unexecuted instantiation: alloc.c:safe_realloc_muladd2_ Unexecuted instantiation: metadata.cpp:safe_realloc_muladd2_(void*, unsigned long, unsigned long, unsigned long) |
310 | | |
311 | | /* size1 * (size2 + size3) */ |
312 | | static inline void *safe_realloc_nofree_muladd2_(void *ptr, size_t size1, size_t size2, size_t size3) |
313 | 118k | { |
314 | 118k | if(!size1 || (!size2 && !size3)) |
315 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ |
316 | 118k | size2 += size3; |
317 | 118k | if(size2 < size3) |
318 | 0 | return 0; |
319 | 118k | return safe_realloc_nofree_mul_2op_(ptr, size1, size2); |
320 | 118k | } encode.c:safe_realloc_nofree_muladd2_ Line | Count | Source | 313 | 81.9k | { | 314 | 81.9k | if(!size1 || (!size2 && !size3)) | 315 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 316 | 81.9k | size2 += size3; | 317 | 81.9k | if(size2 < size3) | 318 | 0 | return 0; | 319 | 81.9k | return safe_realloc_nofree_mul_2op_(ptr, size1, size2); | 320 | 81.9k | } |
foreign_metadata.c:safe_realloc_nofree_muladd2_ Line | Count | Source | 313 | 36.0k | { | 314 | 36.0k | if(!size1 || (!size2 && !size3)) | 315 | 0 | return realloc(ptr, 0); /* preserve POSIX realloc(ptr, 0) semantics */ | 316 | 36.0k | size2 += size3; | 317 | 36.0k | if(size2 < size3) | 318 | 0 | return 0; | 319 | 36.0k | return safe_realloc_nofree_mul_2op_(ptr, size1, size2); | 320 | 36.0k | } |
Unexecuted instantiation: tool_flac.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: utf8.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: iconvert.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: picture.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: replaygain_analysis.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: format.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: metadata_iterators.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: metadata_object.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: stream_decoder.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: stream_encoder.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: ogg_decoder_aspect.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: ogg_helper.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: bitwriter.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: md5.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: memory.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: operations.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: options.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: utils.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: alloc.c:safe_realloc_nofree_muladd2_ Unexecuted instantiation: metadata.cpp:safe_realloc_nofree_muladd2_(void*, unsigned long, unsigned long, unsigned long) |
321 | | |
322 | | #endif |