File tree Expand file tree Collapse file tree 2 files changed +10
-4
lines changed
Expand file tree Collapse file tree 2 files changed +10
-4
lines changed Original file line number Diff line number Diff line change @@ -369,7 +369,11 @@ pub unsafe extern "C" fn dash_spv_ffi_config_builder_build(
369369 let builder = Box :: from_raw ( ffi_builder. inner as * mut ClientConfigBuilder ) ;
370370
371371 match builder. build ( ) {
372- Ok ( config) => Box :: into_raw ( Box :: new ( config. into ( ) ) ) ,
372+ Ok ( config) => {
373+ let mut config = FFIClientConfig :: from ( config) ;
374+ config. worker_threads = ffi_builder. worker_threads ;
375+ Box :: into_raw ( Box :: new ( config) )
376+ }
373377 Err ( err) => {
374378 set_last_error ( & format ! ( "Failed to build config: {}" , err) ) ;
375379 std:: ptr:: null_mut ( )
Original file line number Diff line number Diff line change @@ -74,9 +74,11 @@ mod tests {
7474 fn test_use_after_free_prevention ( ) {
7575 unsafe {
7676 let temp_dir = TempDir :: new ( ) . unwrap ( ) ;
77- let config = dash_spv_ffi_config_new ( FFINetwork :: Regtest ) ;
77+ let builder = dash_spv_ffi_config_builder_regtest ( ) ;
7878 let path = CString :: new ( temp_dir. path ( ) . to_str ( ) . unwrap ( ) ) . unwrap ( ) ;
79- dash_spv_ffi_config_set_data_dir ( config, path. as_ptr ( ) ) ;
79+ dash_spv_ffi_config_builder_set_data_dir ( builder, path. as_ptr ( ) ) ;
80+
81+ let config = dash_spv_ffi_config_builder_build ( builder) ;
8082
8183 let client = dash_spv_ffi_client_new ( config) ;
8284 assert ! ( !client. is_null( ) ) ;
@@ -93,7 +95,7 @@ mod tests {
9395 dash_spv_ffi_config_destroy ( config) ;
9496
9597 // Using config after free should fail
96- let result = dash_spv_ffi_config_builder_set_max_peers ( config , 10 ) ;
98+ let result = dash_spv_ffi_config_builder_set_max_peers ( builder , 10 ) ;
9799 assert_ne ! ( result, FFIErrorCode :: Success as i32 ) ;
98100 }
99101 }
You can’t perform that action at this time.
0 commit comments