Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Clam 2484: Fix warning when scanning some HTML files #1084

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Fix warning when scanning some HTML files
HTML files with <style> blocks containing non-utf8 sequences are causing
warnings when processing them to extract base64 encoded images.

To resolve this, we can use the to_string_lossy() method that may
allocate and sanitize a copy of the content if the non-utf8 characters
are encountered.

Resolves: #1082
micahsnyder committed Nov 13, 2023
commit 6e14400750c112c3459618b7ab822e5f6d032b92
10 changes: 2 additions & 8 deletions libclamav_rust/src/css_image_extract.rs
Original file line number Diff line number Diff line change
@@ -288,16 +288,10 @@ pub unsafe extern "C" fn new_css_image_extractor(
return 0 as sys::css_image_extractor_t;
} else {
#[allow(unused_unsafe)]
match unsafe { CStr::from_ptr(file_bytes) }.to_str() {
Err(e) => {
warn!("{} is not valid unicode: {}", stringify!(file_bytes), e);
return 0 as sys::css_image_extractor_t;
}
Ok(s) => s,
}
unsafe { CStr::from_ptr(file_bytes) }.to_string_lossy()
};

if let Ok(extractor) = CssImageExtractor::new(css_input) {
if let Ok(extractor) = CssImageExtractor::new(&css_input) {
Box::into_raw(Box::new(extractor)) as sys::css_image_extractor_t
} else {
0 as sys::css_image_extractor_t

Unchanged files with check annotations Beta

endp = fast(m, start, stop, gf, gl);
if (endp == NULL) { /* a miss */
free(m->pmatch);
free(m->lastpos);

Check warning on line 190 in libclamav/regex/engine.c

GitHub Actions / build-windows

'function': different 'const' qualifiers

Check warning on line 190 in libclamav/regex/engine.c

GitHub Actions / build-windows

'function': different 'const' qualifiers
STATETEARDOWN(m);
return(REG_NOMATCH);
}
m->pmatch = (regmatch_t *)cli_malloc((m->g->nsub + 1) *
sizeof(regmatch_t));
if (m->pmatch == NULL) {
free(m->lastpos);

Check warning on line 215 in libclamav/regex/engine.c

GitHub Actions / build-windows

'function': different 'const' qualifiers

Check warning on line 215 in libclamav/regex/engine.c

GitHub Actions / build-windows

'function': different 'const' qualifiers
STATETEARDOWN(m);
return(REG_ESPACE);
}
}
free(m->pmatch);
free(m->lastpos);

Check warning on line 287 in libclamav/regex/engine.c

GitHub Actions / build-windows

'function': different 'const' qualifiers

Check warning on line 287 in libclamav/regex/engine.c

GitHub Actions / build-windows

'function': different 'const' qualifiers
STATETEARDOWN(m);
return(0);
}