Skip to content

Commit 527a66c

Browse files
committed
cover.rs: fix UB in the non-pool case
1 parent e9b578b commit 527a66c

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

lib/dictBuilder/cover.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -102,9 +102,9 @@ pub(super) struct COVER_best_t {
102102
pub(super) compressedSize: size_t,
103103
}
104104
#[repr(C)]
105-
struct COVER_tryParameters_data_t<'a> {
105+
struct COVER_tryParameters_data_t<'a, 'b> {
106106
ctx: *const COVER_ctx_t<'a>,
107-
best: *mut COVER_best_t,
107+
best: &'b mut COVER_best_t,
108108
dictBufferCapacity: size_t,
109109
parameters: ZDICT_cover_params_t,
110110
}
@@ -1191,7 +1191,7 @@ unsafe fn COVER_tryParameters(opaque: *mut core::ffi::c_void) {
11911191
eprintln!("Failed to select dictionary");
11921192
}
11931193
drop(dict);
1194-
COVER_best_finish((*data).best.as_mut().unwrap(), parameters, selection);
1194+
COVER_best_finish((*data).best, parameters, selection);
11951195
free(data as *mut core::ffi::c_void);
11961196
COVER_map_destroy(&mut activeDmers);
11971197
COVER_dictSelectionFree(selection);
@@ -1377,7 +1377,7 @@ pub unsafe extern "C" fn ZDICT_optimizeTrainFromBuffer_cover(
13771377
}
13781378
free(data as *mut core::ffi::c_void);
13791379
} else {
1380-
COVER_best_start(&mut best);
1380+
COVER_best_start((*data).best);
13811381
if !pool.is_null() {
13821382
POOL_add(pool, COVER_tryParameters, data as *mut core::ffi::c_void);
13831383
} else {

0 commit comments

Comments
 (0)