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:
pandaadir05
2025-11-21 02:01:52 +02:00
parent d8d562ddf1
commit 3414d05821

View File

@@ -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)
}