aboutcode-org / aboutcode-org/scancode-toolkit

crash when supplying a PNG file to --from-json

Abierto
#3,595 3 comentarios 0 reacciones 0 asignados Ver en GitHub
bug
Lenguaje dominante
Python
Estrellas
2.6k
Forks
791
Merge medio
1 d 12 h
PR fusionados (30 d)
5

Descripción

### Description

Sanity checks are missing for `--from-json` to verify that it actually is a JSON file leading to a crash.

### How To Reproduce

```
$ ./scancode --from-json /tmp/tmp8ulw9skr.png --yaml /tmp/scancode.yaml
Setup plugins...
Collect file inventory...
Removing temporary files...done.
Usage: scancode [OPTIONS] ...
Try the 'scancode --help' option for help on options and arguments.

Error: Invalid value: ERROR: failed to collect codebase at: '/tmp/tmp8ulw9skr.png'
Traceback (most recent call last):
File "/home/armijn/git/scancode-toolkit/venv/lib/python3.10/site-packages/commoncode/resource.py", line 1685, in _get_scan_data_helper
return json.loads(location)
File "/usr/lib64/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib64/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib64/python3.10/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/home/armijn/git/scancode-toolkit/src/scancode/cli.py", line 844, in run_scan
codebase = codebase_class(
File "/home/armijn/git/scancode-toolkit/venv/lib/python3.10/site-packages/commoncode/resource.py", line 1676, in __init__
scan_data = self._get_scan_data(location)
File "/home/armijn/git/scancode-toolkit/venv/lib/python3.10/site-packages/commoncode/resource.py", line 1736, in _get_scan_data
return self._get_scan_data_helper(location)
File "/home/armijn/git/scancode-toolkit/venv/lib/python3.10/site-packages/commoncode/resource.py", line 1690, in _get_scan_data_helper
scan_data = json.load(f)
File "/usr/lib64/python3.10/json/__init__.py", line 293, in load
return loads(fp.read(),
File "/usr/lib64/python3.10/codecs.py", line 322, in decode
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
```

### System configuration

> For bug reports, it really helps us to know:

* What OS are you running on? (Windows/MacOS/Linux)
* What version of scancode-toolkit was used to generate the scan file?
* What installation method was used to install/run scancode? (pip/source download/other)

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.