@@ -229,8 +229,7 @@ void run_ec_illegal_argument_tests(void) {
229229}
230230
231231void run_context_tests (int use_prealloc ) {
232- int32_t ecount ;
233- int32_t ecount2 ;
232+ int32_t dummy = 0 ;
234233 secp256k1_context * my_ctx ;
235234 void * my_ctx_prealloc = NULL ;
236235
@@ -250,13 +249,9 @@ void run_context_tests(int use_prealloc) {
250249 my_ctx = secp256k1_context_create (SECP256K1_CONTEXT_NONE );
251250 }
252251
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 );
257252 /* set error callback (to a function that still aborts in case malloc() fails in secp256k1_context_clone() below) */
258253 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 );
260255 CHECK (my_ctx -> error_callback .fn == secp256k1_default_illegal_callback_fn );
261256
262257 /* check if sizes for cloning are consistent */
@@ -284,11 +279,22 @@ void run_context_tests(int use_prealloc) {
284279 }
285280
286281 /* 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 );
288283 CHECK (my_ctx -> error_callback .fn == secp256k1_default_illegal_callback_fn );
289284 /* And that it resets back to default. */
290285 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 );
292298
293299 /*** attempt to use them ***/
294300 random_scalar_order_test (& msg );
0 commit comments