Fix YARA compiler move error by simplifying rule compilation
- Replace add_rules_str_with_namespace with add_rules_str to avoid move semantics issues - Simplify error handling in rule compilation loop - This should resolve the E0382 use of moved value error
This commit is contained in:
@@ -149,8 +149,11 @@ impl DynamicYaraEngine {
|
||||
.and_then(|s| s.to_str())
|
||||
.unwrap_or("default");
|
||||
|
||||
match compiler.add_rules_str_with_namespace(&content, namespace) {
|
||||
Ok(_) => {
|
||||
if let Err(e) = compiler.add_rules_str(&content) {
|
||||
log::error!("Failed to compile {}: {}", rule_file.display(), e);
|
||||
continue;
|
||||
}
|
||||
|
||||
log::info!("Compiled YARA rule: {}", rule_file.display());
|
||||
|
||||
self.rule_metadata.push(YaraRuleMetadata {
|
||||
@@ -162,11 +165,6 @@ impl DynamicYaraEngine {
|
||||
|
||||
rule_count += 1;
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!("Failed to compile {}: {}", rule_file.display(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
Err(e) => {
|
||||
log::error!("Failed to read {}: {}", rule_file.display(), e);
|
||||
}
|
||||
@@ -179,7 +177,7 @@ impl DynamicYaraEngine {
|
||||
});
|
||||
}
|
||||
|
||||
// Compile all the added rules
|
||||
// Compile all the added rules - this consumes the compiler
|
||||
let compiled_rules = compiler
|
||||
.compile_rules()
|
||||
.map_err(|e| GhostError::Configuration {
|
||||
@@ -188,6 +186,8 @@ impl DynamicYaraEngine {
|
||||
|
||||
self.compiled_rules = Some(compiled_rules);
|
||||
|
||||
self.compiled_rules = Some(compiled_rules);
|
||||
|
||||
log::info!("Successfully compiled {} YARA rules", rule_count);
|
||||
Ok(rule_count)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user