14
14
#include < string>
15
15
#include < vector>
16
16
17
+ template <typename ... Args>
18
+ void fuzz_fmt (const std::string& fmt, const Args&... args)
19
+ {
20
+ (void )tfm::format (tfm::RuntimeFormat{fmt}, args...);
21
+ }
22
+
17
23
FUZZ_TARGET (str_printf)
18
24
{
19
25
FuzzedDataProvider fuzzed_data_provider (buffer.data (), buffer.size ());
@@ -51,22 +57,22 @@ FUZZ_TARGET(str_printf)
51
57
CallOneOf (
52
58
fuzzed_data_provider,
53
59
[&] {
54
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeRandomLengthString (32 ));
60
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeRandomLengthString (32 ));
55
61
},
56
62
[&] {
57
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeRandomLengthString (32 ).c_str ());
63
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeRandomLengthString (32 ).c_str ());
58
64
},
59
65
[&] {
60
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <signed char >());
66
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <signed char >());
61
67
},
62
68
[&] {
63
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <unsigned char >());
69
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <unsigned char >());
64
70
},
65
71
[&] {
66
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <char >());
72
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <char >());
67
73
},
68
74
[&] {
69
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeBool ());
75
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeBool ());
70
76
});
71
77
} catch (const tinyformat::format_error&) {
72
78
}
@@ -91,28 +97,28 @@ FUZZ_TARGET(str_printf)
91
97
CallOneOf (
92
98
fuzzed_data_provider,
93
99
[&] {
94
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeFloatingPoint <float >());
100
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeFloatingPoint <float >());
95
101
},
96
102
[&] {
97
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeFloatingPoint <double >());
103
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeFloatingPoint <double >());
98
104
},
99
105
[&] {
100
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <int16_t >());
106
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <int16_t >());
101
107
},
102
108
[&] {
103
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <uint16_t >());
109
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <uint16_t >());
104
110
},
105
111
[&] {
106
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <int32_t >());
112
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <int32_t >());
107
113
},
108
114
[&] {
109
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <uint32_t >());
115
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <uint32_t >());
110
116
},
111
117
[&] {
112
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <int64_t >());
118
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <int64_t >());
113
119
},
114
120
[&] {
115
- ( void ) strprintf (format_string, fuzzed_data_provider.ConsumeIntegral <uint64_t >());
121
+ fuzz_fmt (format_string, fuzzed_data_provider.ConsumeIntegral <uint64_t >());
116
122
});
117
123
} catch (const tinyformat::format_error&) {
118
124
}
0 commit comments