@@ -229,8 +229,7 @@ void run_ec_illegal_argument_tests(void) {
229
229
}
230
230
231
231
void run_context_tests (int use_prealloc ) {
232
- int32_t ecount ;
233
- int32_t ecount2 ;
232
+ int32_t dummy = 0 ;
234
233
secp256k1_context * my_ctx ;
235
234
void * my_ctx_prealloc = NULL ;
236
235
@@ -250,13 +249,9 @@ void run_context_tests(int use_prealloc) {
250
249
my_ctx = secp256k1_context_create (SECP256K1_CONTEXT_NONE );
251
250
}
252
251
253
- ecount = 0 ;
254
- ecount2 = 10 ;
255
- secp256k1_context_set_illegal_callback (sttc , counting_illegal_callback_fn , & ecount );
256
- secp256k1_context_set_illegal_callback (my_ctx , counting_illegal_callback_fn , & ecount2 );
257
252
/* set error callback (to a function that still aborts in case malloc() fails in secp256k1_context_clone() below) */
258
253
secp256k1_context_set_error_callback (my_ctx , secp256k1_default_illegal_callback_fn , NULL );
259
- CHECK (my_ctx -> error_callback .fn != sttc -> error_callback . fn );
254
+ CHECK (my_ctx -> error_callback .fn != secp256k1_default_error_callback_fn );
260
255
CHECK (my_ctx -> error_callback .fn == secp256k1_default_illegal_callback_fn );
261
256
262
257
/* check if sizes for cloning are consistent */
@@ -284,11 +279,22 @@ void run_context_tests(int use_prealloc) {
284
279
}
285
280
286
281
/* Verify that the error callback makes it across the clone. */
287
- CHECK (my_ctx -> error_callback .fn != sttc -> error_callback . fn );
282
+ CHECK (my_ctx -> error_callback .fn != secp256k1_default_error_callback_fn );
288
283
CHECK (my_ctx -> error_callback .fn == secp256k1_default_illegal_callback_fn );
289
284
/* And that it resets back to default. */
290
285
secp256k1_context_set_error_callback (my_ctx , NULL , NULL );
291
- CHECK (my_ctx -> error_callback .fn == sttc -> error_callback .fn );
286
+ CHECK (my_ctx -> error_callback .fn == secp256k1_default_error_callback_fn );
287
+
288
+ /* Verify that setting and resetting illegal callback works */
289
+ secp256k1_context_set_illegal_callback (sttc , counting_illegal_callback_fn , & dummy );
290
+ CHECK (sttc -> illegal_callback .fn == counting_illegal_callback_fn );
291
+ secp256k1_context_set_illegal_callback (sttc , NULL , NULL );
292
+ CHECK (sttc -> illegal_callback .fn == secp256k1_default_illegal_callback_fn );
293
+
294
+ secp256k1_context_set_illegal_callback (my_ctx , counting_illegal_callback_fn , & dummy );
295
+ CHECK (my_ctx -> illegal_callback .fn == counting_illegal_callback_fn );
296
+ secp256k1_context_set_illegal_callback (my_ctx , NULL , NULL );
297
+ CHECK (my_ctx -> illegal_callback .fn == secp256k1_default_illegal_callback_fn );
292
298
293
299
/*** attempt to use them ***/
294
300
random_scalar_order_test (& msg );
0 commit comments