@@ -78,6 +78,7 @@ isc_siphash24(const uint8_t *k, const uint8_t *in, const size_t inlen,
78
78
bool case_sensitive , uint8_t * out ) {
79
79
REQUIRE (k != NULL );
80
80
REQUIRE (out != NULL );
81
+ REQUIRE (inlen == 0 || in != NULL );
81
82
82
83
uint64_t k0 = ISC_U8TO64_LE (k );
83
84
uint64_t k1 = ISC_U8TO64_LE (k + 8 );
@@ -89,7 +90,9 @@ isc_siphash24(const uint8_t *k, const uint8_t *in, const size_t inlen,
89
90
90
91
uint64_t b = ((uint64_t )inlen ) << 56 ;
91
92
92
- const uint8_t * end = in + inlen - (inlen % sizeof (uint64_t ));
93
+ const uint8_t * end = (in == NULL )
94
+ ? NULL
95
+ : in + inlen - (inlen % sizeof (uint64_t ));
93
96
const size_t left = inlen & 7 ;
94
97
95
98
for (; in != end ; in += 8 ) {
@@ -158,6 +161,7 @@ isc_halfsiphash24(const uint8_t *k, const uint8_t *in, const size_t inlen,
158
161
bool case_sensitive , uint8_t * out ) {
159
162
REQUIRE (k != NULL );
160
163
REQUIRE (out != NULL );
164
+ REQUIRE (inlen == 0 || in != NULL );
161
165
162
166
uint32_t k0 = ISC_U8TO32_LE (k );
163
167
uint32_t k1 = ISC_U8TO32_LE (k + 4 );
@@ -169,7 +173,9 @@ isc_halfsiphash24(const uint8_t *k, const uint8_t *in, const size_t inlen,
169
173
170
174
uint32_t b = ((uint32_t )inlen ) << 24 ;
171
175
172
- const uint8_t * end = in + inlen - (inlen % sizeof (uint32_t ));
176
+ const uint8_t * end = (in == NULL )
177
+ ? NULL
178
+ : in + inlen - (inlen % sizeof (uint32_t ));
173
179
const int left = inlen & 3 ;
174
180
175
181
for (; in != end ; in += 4 ) {
0 commit comments