Skip to content

Commit bb0ec71

Browse files
committed
Implemented sanitisation to satisfy CodeQL warning on uncontrolled command line input
1 parent 2bb132a commit bb0ec71

File tree

1 file changed

+6
-9
lines changed
  • src/murfey/instrument_server

1 file changed

+6
-9
lines changed

src/murfey/instrument_server/api.py

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
from murfey.client.multigrid_control import MultigridController
2222
from murfey.client.rsync import RSyncer
2323
from murfey.client.watchdir_multigrid import MultigridDirWatcher
24-
from murfey.util import sanitise_nonpath, secure_path
24+
from murfey.util import sanitise, sanitise_nonpath, secure_path
2525
from murfey.util.instrument_models import MultigridWatcherSpec
2626
from murfey.util.models import File, Token
2727

@@ -278,19 +278,16 @@ class GainReference(BaseModel):
278278

279279
@router.post("/sessions/{session_id}/upload_gain_reference")
280280
def upload_gain_reference(session_id: MurfeySessionID, gain_reference: GainReference):
281+
safe_gain_path = sanitise(str(gain_reference.gain_path))
282+
safe_visit_path = sanitise(gain_reference.visit_path)
283+
safe_destination_dir = sanitise(gain_reference.gain_destination_dir)
281284
cmd = [
282285
"rsync",
283-
str(gain_reference.gain_path),
284-
f"{urlparse(_get_murfey_url(), allow_fragments=False).hostname}::{gain_reference.visit_path}/{gain_reference.gain_destination_dir}/{secure_filename(gain_reference.gain_path.name)}",
286+
safe_gain_path,
287+
f"{urlparse(_get_murfey_url(), allow_fragments=False).hostname}::{safe_visit_path}/{safe_destination_dir}/{secure_filename(gain_reference.gain_path.name)}",
285288
]
286289
gain_rsync = subprocess.run(cmd)
287290
if gain_rsync.returncode:
288-
safe_gain_path = (
289-
str(gain_reference.gain_path).replace("\r\n", "").replace("\n", "")
290-
)
291-
safe_visit_path = gain_reference.visit_path.replace("\r\n", "").replace(
292-
"\n", ""
293-
)
294291
logger.warning(
295292
f"Gain reference file {safe_gain_path} was not successfully transferred to {safe_visit_path}/processing"
296293
)

0 commit comments

Comments
 (0)