ComplianceAsCode / ComplianceAsCode/content-test-filtering

Traceback when analysing Bash remediation of `rsyslog_files_permissions`

Open
#20 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
8
Forks
9
PR merge metrics
No merged PRs in 30d

Description

token_before: `"s/[\"` token_after: `"s/[\"`
```
Traceback (most recent call last):
File "/home/ggasparb/workspace/github/content-test-filtering/content_test_filtering.py", line 45, in
diff_structure = diff_analysis.analyse_file(file_record)
File "/home/ggasparb/workspace/github/content-test-filtering/ctf/diff_analysis.py", line 54, in analyse_file
return file_analyzer.process_analysis()
File "/home/ggasparb/workspace/github/content-test-filtering/ctf/analysis/BashAnalysis.py", line 123, in process_analysis
self.analyse_bash()
File "/home/ggasparb/workspace/github/content-test-filtering/ctf/analysis/BashAnalysis.py", line 91, in analyse_bash
token_before = tokens_before.get_token()
File "/usr/lib64/python3.9/shlex.py", line 109, in get_token
raw = self.read_token()
File "/usr/lib64/python3.9/shlex.py", line 191, in read_token
raise ValueError("No closing quotation")
ValueError: No closing quotation
```

The problem is the backslash that escapes the double quotes. The bash content that is being parsed is this one:
https://github.com/ComplianceAsCode/content/blob/fc6bdac51301debae58900bac597183cd7039620/linux_os/guide/system/logging/ensure_rsyslog_log_file_configuration/rsyslog_files_permissions/bash/shared.sh#L39

`CLEANED_PATHS=$(sed -e "s/[\"')]//g; /\\/etc.*\.conf/d; /\\/dev\\//d" <<< "${FILTERED_PATHS}")`

CTF identifies partially the token probably because this crazy sed command construction.

Reproducer: `python3 content_test_filtering.py pr --rule --output json 7715`

I don't know if we can circumvent this here or if this is a legitimate problem with the content. Either way we could catch the ValueError exception so the it doesn't crash.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.