From 6d45d7c9a5938033ce5c6f27261478e7183bbace Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Sat, 23 Jul 2022 15:06:51 -0700 Subject: [PATCH] Disallow None handler function argument --- fuzz/fuzz_targets/load.rs | 2 +- fuzz/fuzz_targets/parse.rs | 2 +- fuzz/fuzz_targets/scan.rs | 2 +- src/api.rs | 10 ++++------ src/bin/run-emitter-test-suite.rs | 2 +- src/bin/run-parser-test-suite.rs | 2 +- 6 files changed, 9 insertions(+), 11 deletions(-) diff --git a/fuzz/fuzz_targets/load.rs b/fuzz/fuzz_targets/load.rs index e92743b..e5e5905 100644 --- a/fuzz/fuzz_targets/load.rs +++ b/fuzz/fuzz_targets/load.rs @@ -17,7 +17,7 @@ unsafe fn fuzz_target(mut data: &[u8]) { let mut parser = MaybeUninit::::uninit(); let parser = parser.as_mut_ptr(); assert!(yaml_parser_initialize(parser).ok); - yaml_parser_set_input(parser, Some(read_from_slice), addr_of_mut!(data).cast()); + yaml_parser_set_input(parser, read_from_slice, addr_of_mut!(data).cast()); let mut document = MaybeUninit::::uninit(); let document = document.as_mut_ptr(); diff --git a/fuzz/fuzz_targets/parse.rs b/fuzz/fuzz_targets/parse.rs index 0dc1358..d8b34ac 100644 --- a/fuzz/fuzz_targets/parse.rs +++ b/fuzz/fuzz_targets/parse.rs @@ -17,7 +17,7 @@ unsafe fn fuzz_target(mut data: &[u8]) { let mut parser = MaybeUninit::::uninit(); let parser = parser.as_mut_ptr(); assert!(yaml_parser_initialize(parser).ok); - yaml_parser_set_input(parser, Some(read_from_slice), addr_of_mut!(data).cast()); + yaml_parser_set_input(parser, read_from_slice, addr_of_mut!(data).cast()); let mut event = MaybeUninit::::uninit(); let event = event.as_mut_ptr(); diff --git a/fuzz/fuzz_targets/scan.rs b/fuzz/fuzz_targets/scan.rs index c023d2c..59b84d2 100644 --- a/fuzz/fuzz_targets/scan.rs +++ b/fuzz/fuzz_targets/scan.rs @@ -17,7 +17,7 @@ unsafe fn fuzz_target(mut data: &[u8]) { let mut parser = MaybeUninit::::uninit(); let parser = parser.as_mut_ptr(); assert!(yaml_parser_initialize(parser).ok); - yaml_parser_set_input(parser, Some(read_from_slice), addr_of_mut!(data).cast()); + yaml_parser_set_input(parser, read_from_slice, addr_of_mut!(data).cast()); let mut token = MaybeUninit::::uninit(); let token = token.as_mut_ptr(); diff --git a/src/api.rs b/src/api.rs index d28f6a8..803d065 100644 --- a/src/api.rs +++ b/src/api.rs @@ -316,14 +316,13 @@ pub unsafe fn yaml_parser_set_input_string( /// Set a generic input handler. pub unsafe fn yaml_parser_set_input( parser: *mut yaml_parser_t, - handler: Option, + handler: yaml_read_handler_t, data: *mut libc::c_void, ) { __assert!(!parser.is_null()); __assert!(((*parser).read_handler).is_none()); - __assert!(handler.is_some()); let fresh89 = addr_of_mut!((*parser).read_handler); - *fresh89 = handler; + *fresh89 = Some(handler); let fresh90 = addr_of_mut!((*parser).read_handler_data); *fresh90 = data; } @@ -472,14 +471,13 @@ pub unsafe fn yaml_emitter_set_output_string( /// Set a generic output handler. pub unsafe fn yaml_emitter_set_output( emitter: *mut yaml_emitter_t, - handler: Option, + handler: yaml_write_handler_t, data: *mut libc::c_void, ) { __assert!(!emitter.is_null()); __assert!(((*emitter).write_handler).is_none()); - __assert!(handler.is_some()); let fresh161 = addr_of_mut!((*emitter).write_handler); - *fresh161 = handler; + *fresh161 = Some(handler); let fresh162 = addr_of_mut!((*emitter).write_handler_data); *fresh162 = data; } diff --git a/src/bin/run-emitter-test-suite.rs b/src/bin/run-emitter-test-suite.rs index 815bce3..3bea629 100644 --- a/src/bin/run-emitter-test-suite.rs +++ b/src/bin/run-emitter-test-suite.rs @@ -60,7 +60,7 @@ pub(crate) unsafe fn unsafe_main( } } - yaml_emitter_set_output(emitter, Some(write_to_stdio), addr_of_mut!(stdout).cast()); + yaml_emitter_set_output(emitter, write_to_stdio, addr_of_mut!(stdout).cast()); yaml_emitter_set_canonical(emitter, false); yaml_emitter_set_unicode(emitter, false); diff --git a/src/bin/run-parser-test-suite.rs b/src/bin/run-parser-test-suite.rs index e7b332a..7429086 100644 --- a/src/bin/run-parser-test-suite.rs +++ b/src/bin/run-parser-test-suite.rs @@ -61,7 +61,7 @@ pub(crate) unsafe fn unsafe_main( } } - yaml_parser_set_input(parser, Some(read_from_stdio), addr_of_mut!(stdin).cast()); + yaml_parser_set_input(parser, read_from_stdio, addr_of_mut!(stdin).cast()); let mut event = MaybeUninit::::uninit(); let event = event.as_mut_ptr();