Open-source firmware for Ingenic SoC IP cameras
This report summarizes scanner evidence for themactep/thingino-firmware, a Shell project with 2,196 GitHub stars. SynthScan examined 323,680 lines of code across 1073 source files, recording 971 pattern matches distributed across 17 syntactic categories. The legacy adjusted pattern signal is 4.2 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Can maintainers explain intent, assumptions, and trade-offs? 724 finding(s).
Are imports declared and package/API names verified? 23 finding(s).
Are wrappers, guards, and repeated structures necessary? 263 finding(s).
Which changes need focused human review? 971 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 971 distinct pattern matches across 17 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | docs/thingino/tools/snmp/thingino-snmp-monitor.sh | 267 | # ── mDNS discovery helpers ───────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/thingino/tools/snmp/thingino-snmp-monitor.sh | 311 | # ── Try mDNS first ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/thingino/tools/snmp/thingino-snmp-monitor.sh | 325 | # ── Fall back to network scan ───────────────────────────────────── | COMMENT |
| MEDIUM | docs/dev/plugin-system.md | 176 | // ── Navigation ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | docs/dev/plugin-system.md | 214 | // ── Scripts ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | docs/dev/plugin-system.md | 222 | // ── Stylesheets ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | docs/dev/plugin-system.md | 229 | // ── Preview-page injection ────────────────────────────────────── | COMMENT |
| MEDIUM | docs/dev/plugin-system.md | 242 | // ── Feature flags ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/dev/plugin-system.md | 251 | // ── CGI endpoints ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | docs/dev/plugin-system.md | 263 | // ── Pages ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-overlay.py | 241 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-overlay.py | 243 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-overlay.py | 251 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-overlay.py | 253 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 37 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 39 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 133 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 135 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 202 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 204 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 444 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 446 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 460 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 462 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 539 | # ── Write standalone subtitle file, no encode ──────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 568 | # ── Generate ASS subtitle file ───────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-overlay.py | 577 | # ── Build ffmpeg command ─────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/test-snmpd.sh | 39 | # ── header ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/test-snmpd.sh | 52 | # ── SNMPv2-MIB system group ───────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/test-snmpd.sh | 71 | # ── IF-MIB ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/test-snmpd.sh | 85 | # ── IP-MIB ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/test-snmpd.sh | 99 | # ── HOST-RESOURCES-MIB ───────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/test-snmpd.sh | 130 | # ── UCD-SNMP-MIB: memory ─────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/test-snmpd.sh | 138 | # ── UCD-SNMP-MIB: disks ──────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/test-snmpd.sh | 158 | # ── UCD-SNMP-MIB: load ───────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/test-snmpd.sh | 178 | # ── UCD-SNMP-MIB: system stats ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/test-snmpd.sh | 185 | # ── Agent's own SNMP counters ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/test-snmpd.sh | 191 | # ── Full walk stats ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/test-snmpd.sh | 195 | # ── Summary ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/update_packages.py | 93 | # ── Release bundle helpers ────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-rtsp.py | 390 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-rtsp.py | 392 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-rtsp.py | 563 | # ── Sanity check ─────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-rtsp.py | 575 | # ── Font ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-rtsp.py | 579 | # ── Shared state ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | scripts/sei-rtsp.py | 582 | # ── Print‑only mode ───────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 64 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 66 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 97 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 99 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 210 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 212 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 334 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 336 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 409 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 411 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 504 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 506 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 522 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | scripts/sei-rtsp.py | 524 | # ────────────────────────────────────────────────────────────────────── | COMMENT |
| 104 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | build-container.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docs/thingino/tools/snmp/thingino-snmp-monitor.sh | 1 | #!/bin/bash | COMMENT |
| LOW | docs/thingino/tools/snmp/thingino-snmp-monitor.sh | 21 | # Config: ~/.config/thingino/monitor.conf | COMMENT |
| LOW | docs/rfc/rfc6458.txt | 5921 | #include <netinet/in.h> | COMMENT |
| LOW | docs/rfc/rfc6458.txt | 6081 | or without modification, is permitted pursuant to, and subject | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9181 | COMMENT | |
| LOW | docs/rfc/rfc6716.txt | 9201 | ###/vlb4b/zM4H/T8+rteo54f+T4/PjF/z3LT5vYIkAi2YJCAASCqylxq4MnlsDqd4U | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9221 | ###EfuUpEhgx9A7bYKGS9s/CJ0zDCTkCvU+Ao9GnYZA/bqn9o9W7tZxyOplGu2AeR7C | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9241 | ###2R7RP/vzY//dA2350YF2kyvBI1wpC5H4usPKQC+advw0mC2YJGF2nl9I0ZtsLczO | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9261 | ###axlOniesMP5qK2cN+QRjIwa+VFv6UNUbZ6cf09Am+ezsY6mwb2ehvThbFVgW2q7B | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9281 | ###r/UrBZFOnrfXaOyCFBFmVFQRHzKxwA8rUZDrqnIx6t2WkhPTTqo5nqQOG1dr2hkp | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9301 | ###F/8qWa6c74ng+8NX8tVGfZoSyjBHvqecb7X2lXwvR+12rrxnnG/teBvfZaKZnXpZ | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9321 | ###FGFsrU/+cKKVSVJfQfdNhISIpo/AYwWRaxhNLOi/gAJzoI5zDiMFQk8VQUYb4TqE | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9341 | ###5WtR5UsBUefGLhXTHY7gYJEszghVYwI9DdMQpaJajNQeHuw5vb5/VSJ9UxhjU908 | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9361 | ###tNgndL8W3yICEfbrFEGc24OEP5RYeP+RmRNAhYaAf5VQR3IR8C4ca6BHJuWI6DHm | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9381 | ###K25LR204/8leCpszb/EABJ3A75MpWO7t8Z6a4CEmaiUlHSaIpXq98C7olvm7TWAE | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9401 | Valin, et al. Standards Track [Page 168] | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9421 | ###+jouKOsNrQim2iwITedFO0TXXFJN0ZWZ9qKZD4AsJ72ONrgGZrYsPIVwHiwQUofC | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9441 | ###xekGj7BiWdCCRXoaF6Bxfor2b0m32ywLlplGK8YFFRkrxfJeJi3FS1FvvYIRBCgU | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9461 | COMMENT | |
| LOW | docs/rfc/rfc6716.txt | 9481 | ###rwxu/pz4v65XbbgU/7fWcD2v4v1Hxa1WGpVl/N8/4+fbdPhfNx3+NxG3d0as329f | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9501 | ###uUXSb+0tkn6vt8isd7hFZrwzt8isIsYWSRfJOIQyi2WRk+xiJjlJl8jekulyxpbM | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9521 | ###4AEjFivTM79/xZrlHHL2LUKAwns2QzvlPz/yn3iM6av48y779TlO0EGVNqVLkyZq | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9541 | ###cIIMHP3NKsEEj9AcVo2/dOiP6IkOI+3maZw85Oz858r/RHr7487zWQE8IP/XapXk | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9561 | ###k/yKWLchAPeujKXWZUOvKRdfhFf1Mg2fczXFy0BJFIiKiM2CNIQ8A6DUAIpjnlWM | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9581 | ###F2eysQFfGo3aZz4Se07urgmn9Au5gARIYkOcG2gmZxyUd8iB5Mtr9PJOn4mADl7h | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9601 | ###cVf11FWDPF75kOAwWr68LuRbSDpwMEIBisvIM1AaSwfvN/EjOprZAKf7u4YJHA0Q | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9621 | ###UiOISQbePZIO2AgiKv+dEGS1kAH8eYSi35/yryejCdtzPUA4shFl3mizUAXHWeY/ | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9641 | ###YUD9K2AAhQH5QhSoPw0F6l+MAvVnQIG5t1T7Rz+DaKVUYPLrPMYgQ/TR1Z7xvqot | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9661 | ###EjsXR6Rvhr0bAbJeo7aMNErh5PuYh1/e1kzmvci0+MiJzeaTE7OaLZaYE0y+becz | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9681 | Valin, et al. Standards Track [Page 173] | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9701 | ###HfoPW1/fc6t1z8XW6+uNw936umh9d92rHhxUsPWdyvrO/vohQcat7G2suTT2g0P8 | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9721 | ###h2TCGJdTaLX8zjXVFnWhWp/8K0YIvFy4EqyQZsMe02m5Cy0PY0aIKSyGBTwhb/7I | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9741 | COMMENT | |
| LOW | docs/rfc/rfc6716.txt | 9761 | ###10CRRFpZZLJluJpYjSD20YE8QpIK2OutVqkNQhM4cRBTeFckN4LQUQOjHtNuILbd | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9781 | ###EcAMY8PkaLOYIBwBtFr3yP4DkUfKMCQQ+Ki8bgMHB4JQd0rWIGSMCOIJ28KqC31m | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9801 | ###VyXEzao281vNVujkJpZHCROxVrjlubW1mrvuutUmCuicKUzwBYAFMIjKP3Nh/DGC | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9821 | ###JmgxOcmg1Hrfy4iJ+Dt7T2do62cr02OgeJ1rAIZAeLo99F4pGVWfxKXvWjcqGgOP | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9841 | ###+ClXLdWoH7TCvmid7LzfbpJl2Hq1UVuDF1md0eTxtmbU045MBeA2zlq7Rxf5VC0x | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9861 | ###Nvgc5QXTrUbChf6m11LaC63EYt2faYQP5dq9/r2Xy+ZQFDQ74zs4+YBFmcy41GKb | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9881 | ###5FAlHtRNdtQRWJHx0Mt6WM16WMOHukeDMjVFp/NYXUdiJizEh2lBLM/lPJbXkViM | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9901 | ###QXxu10zhu6Mp5kEfh83qiltz6xteo16tr2+sbVS96nqt4TVq1ep61VvT94BcQYw2 | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9921 | ###Kri3PeJs0t7pXUmmASBN3wxU4BawtrWMUEyuiI5oztX1Dq3kE0Ijt5PeK1RLTsuO | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9941 | ###mitc2R2JU10ijGIe4bPIV4CHrgETtjxCbiC4A9axf69zuOCYSsxC3MrZf5xCtck9 | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9961 | Valin, et al. Standards Track [Page 178] | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 9981 | ###bmlvt7S3eyZ7O+cbkVk415IsTdD6If/iW5Fx2DEfOzkX3yi7OyA+xMRzwuM9ZML9 | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10001 | ###QdYSf/PiAWxTUWR7GzYtNWZEMJK1ipoorRaApTh4hdF9fWcQIquK5reD8F9CNLlF | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10021 | COMMENT | |
| LOW | docs/rfc/rfc6716.txt | 10041 | ###NB1ILz5yPyRg5OK8RRXPiN4ktaI8JGxfKbyI7uVLDOl83u70l+B7cuPuT8Jx/x6P | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10061 | ###RieA+fb/bsVbayT9v+vV2tL+f2n/v7T/X9r/L+3/l/b/S/v/pf3/17T/lzyPZaBv | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10081 | ###ahkHRl3QaNKEAopvI2QsaoEbv/gFu76YtQyPJQGcmpm2v3UeASUQg+7Dxs7cTLNJ | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10101 | ###nvOyNKMZMs20zP0UgDtbe3kRnUE19V/Dl9KYEyB8Ku19mSgRBOMpaZKFuCouF+Eo | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10121 | ###vNWovNQWJKKCASWNhCM+3+yI0zLkPGkeXmh7BdqjXh4pazAU+jo45+StjS3z0Snb | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10141 | ###ZKSNbBiZMZjHzQoH5BC8rMkT94H3ijIieHhzw8FArZtoVlB3ADun8Ijwj4q0aWry | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10161 | ###bKCtH+5JLMPLfauJaoHW28nlctWydZgDW0gGx40a/vagfU/HM6T8GOsVC8VlRZ2H | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10181 | ###a1JAgcILpyKXpY4pj7zhqSHDn3rl8uYLnfpoOh4DN9APB+jvPJRyp0+54HwxRYeu | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10201 | ###XTI0TCQ8oruldHor7pSccZjO6HwO1ptvGF2ty1TdFxSAyaF+lPiM1i4qGHmuCAHk | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10221 | ###hJwV5xcU2MljhZRJajFKcgdHQZnsL5VaQYe0Mk2HjfusG5VfGeAPQ7lnRRNGIGAr | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10241 | Valin, et al. Standards Track [Page 183] | COMMENT |
| LOW | docs/rfc/rfc6716.txt | 10261 | ###llE4KunS7uzSqbbZsfW9DQk9G441gBbfmT1RGY4lMKOMbN+9zASA2b47YyZm+25m | COMMENT |
| 506 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/sei-overlay.py | 344 | except ValueError: | CODE |
| HIGH | scripts/sei-overlay.py | 422 | except ValueError: | CODE |
| HIGH | scripts/save_partition_info.py | 24 | except Exception: | CODE |
| HIGH | scripts/update_packages.py | 701 | except Exception: | CODE |
| HIGH | scripts/update_packages.py | 956 | except Exception: | CODE |
| HIGH | scripts/sei-rtsp.py | 727 | except OSError: | CODE |
| HIGH | scripts/sei-rtsp.py | 599 | except KeyboardInterrupt: | CODE |
| HIGH | scripts/sei-rtsp.py | 723 | except OSError: | CODE |
| HIGH | scripts/sei-rtsp.py | 628 | except Exception: | CODE |
| HIGH | scripts/sei-rtsp.py | 385 | except OSError: | CODE |
| HIGH | scripts/sei-rtsp.py | 133 | except (json.JSONDecodeError, UnicodeDecodeError): | CODE |
| HIGH | scripts/qemu-test/qemutest/netlab.py | 130 | except OSError: | CODE |
| HIGH | scripts/qemu-test/qemutest/netlab.py | 161 | except OSError: | CODE |
| HIGH | scripts/qemu-test/qemutest/netlab.py | 208 | except OSError: | CODE |
| HIGH | scripts/qemu-test/qemutest/netlab.py | 452 | except FileNotFoundError: | CODE |
| HIGH | scripts/qemu-test/qemutest/netlab.py | 123 | except OSError: | CODE |
| HIGH | scripts/qemu-test/qemutest/netlab.py | 199 | except OSError: | CODE |
| HIGH | scripts/qemu-test/qemutest/netlab.py | 330 | except OSError: | CODE |
| HIGH | scripts/qemu-test/qemutest/netlab.py | 309 | except OSError: | CODE |
| HIGH | scripts/qemu-test/qemutest/qmp.py | 58 | except OSError: | CODE |
| HIGH | scripts/qemu-test/qemutest/driver.py | 181 | except Exception: | CODE |
| HIGH | scripts/qemu-test/qemutest/driver.py | 57 | except Exception: | CODE |
| HIGH | scripts/qemu-test/qemutest/driver.py | 165 | except Exception: | CODE |
| HIGH | scripts/qemu-test/qemutest/driver.py | 227 | except Exception: | CODE |
| HIGH | scripts/qemu-test/qemutest/driver.py | 235 | except Exception: | CODE |
| HIGH | scripts/qemu-test/qemutest/driver.py | 279 | except OSError: | CODE |
| HIGH | package/thingino-webui/scripts/apply_asset_tag.py | 58 | except OSError: | CODE |
| HIGH | package/thingino-webui/scripts/apply_paranoid_mode.py | 58 | except OSError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | user-menu.sh | 4 | # Check if both dialog and Bash are installed | COMMENT |
| LOW | build-container.sh | 130 | # Check if CAMERA is already provided | COMMENT |
| LOW | build-container.sh | 169 | # Check if there's a previous selection | COMMENT |
| LOW | scripts/sei-overlay.py | 315 | # Set PlayRes to match the display canvas so fontsize / margins | COMMENT |
| LOW | scripts/dl_buildroot_cache.sh | 10 | # Check if the required environment variables are set | COMMENT |
| LOW | scripts/dl_buildroot_cache.sh | 46 | # Check if BR2_DL_DIR exists | COMMENT |
| LOW | scripts/test-snmpd.sh | 166 | # Print values | COMMENT |
| LOW | scripts/sd_card_flasher.sh | 62 | # Check if file exists | COMMENT |
| LOW | scripts/sd_card_flasher.sh | 68 | # Check if file is readable | COMMENT |
| LOW | scripts/sd_card_flasher.sh | 142 | # Check if it's an SD card | COMMENT |
| LOW | scripts/sd_card_flasher.sh | 181 | # Check if it's FAT (vfat/fat32) | COMMENT |
| LOW⚡ | scripts/sd_card_flasher.sh | 262 | # Check if mount point exists | COMMENT |
| LOW⚡ | scripts/sd_card_flasher.sh | 268 | # Check if it's actually a mount point | COMMENT |
| LOW⚡ | scripts/sd_card_flasher.sh | 274 | # Check if it's writable | COMMENT |
| LOW | scripts/list-spi-nor-chips.sh | 45 | # Check if the binary contains a U-Boot image header (IH_MAGIC = 0x27051956) | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 101 | # Check if package has override in local.mk | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 112 | # Check if package has override but is disabled (commented) | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 154 | # Check if override already exists | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 246 | # Check if override exists (enabled or disabled) | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 259 | # Check if it's a git repository | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 287 | # Check if in detached HEAD state | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 338 | # Check if a URL points to a GitHub repository | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 546 | # Check if already has override | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 674 | # Check if this package has an override | COMMENT |
| LOW | scripts/manage-package-overrides.sh | 758 | # Check if next arg is --all or a pattern | COMMENT |
| LOW | scripts/sd_card_monitor.sh | 66 | # Check if running as root for some operations | COMMENT |
| LOW | scripts/sd_card_monitor.sh | 79 | # Check if device exists | COMMENT |
| LOW⚡ | scripts/sd_card_monitor.sh | 170 | # Check if device is mounted | COMMENT |
| LOW⚡ | scripts/sd_card_monitor.sh | 176 | # Check if device is in use | COMMENT |
| LOW⚡ | scripts/sd_card_monitor.sh | 182 | # Check if device is writable | COMMENT |
| LOW | scripts/sd_utils.sh | 36 | $0 check /dev/mmcblk0 # Check if device is safe for writing | CODE |
| LOW | scripts/sd_utils.sh | 133 | # Check if device is safe for writing | COMMENT |
| LOW | scripts/sd_utils.sh | 144 | # Check if it's an SD card | COMMENT |
| LOW | scripts/sd_utils.sh | 150 | # Check if ready for writing | COMMENT |
| LOW | scripts/sd_utils.sh | 170 | # Check if already mounted | COMMENT |
| LOW | scripts/dep_check.sh | 16 | # Check if the current directory path contains spaces. | COMMENT |
| LOW | scripts/dep_check.sh | 35 | # Check if it's uutils coreutils (Rust rewrite) | COMMENT |
| LOW | scripts/dep_check.sh | 66 | # Check if running on Alpine with musl | COMMENT |
| LOW | scripts/dep_check.sh | 110 | # Check if sudo is available | COMMENT |
| LOW | scripts/select_camera.sh | 85 | # Check if there's a previous selection (only if no suggestion was accepted) | COMMENT |
| LOW | scripts/tftpd-server.sh | 104 | # Check if container is already running | COMMENT |
| LOW | scripts/tftpd-server.sh | 193 | # Check if container is running | COMMENT |
| LOW | scripts/tftpd-server.sh | 215 | # Check if container exists | COMMENT |
| LOW | scripts/tftpd-server.sh | 256 | # Check if container exists | COMMENT |
| LOW | scripts/menu/menu1-dev-sel.sh | 27 | # Check if we found any items | COMMENT |
| LOW | scripts/menu/menu2-guided.sh | 153 | # Set BR2_DL_DIR to $HOME/dl if it is not already defined before make ( we should do this in the makefile ) | COMMENT |
| LOW | scripts/menu/menu2-guided.sh | 156 | # Check if the directory exists, if not, create it | COMMENT |
| LOW | package/strero/files/generate-ssl-certs.sh | 193 | # Check if certificate and key files exist and are not empty | COMMENT |
| LOW | package/strero/files/generate-ssl-certs.sh | 204 | # Check if certificate has PEM format markers | COMMENT |
| LOW | package/thingino-webui/files/www/x/auth.sh | 25 | # Check if the client IP is in the trusted IP bypass list (webui.auth_bypass_ips). | COMMENT |
| LOW | package/thingino-webui/files/www/x/auth.sh | 105 | # Check if API key file exists | COMMENT |
| LOW | package/thingino-webui/files/www/x/auth.sh | 118 | # Check if user is authenticated (session OR API key) | COMMENT |
| LOW | package/thingino-webui/files/www/x/session.sh | 56 | # Check if session file exists | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | scripts/qemu-test/qemutest/suites/wifi.py | 48 | ">/dev/null && echo PORTAL_UHTTPD; pgrep -af uhttpd", | CODE |
| HIGH | scripts/qemu-test/qemutest/suites/wifi.py | 81 | guest.run(f"ip addr add {SLIP_GUEST_IP} peer {SLIP_HOST_IP} dev sl0 2>/dev/null; " | CODE |
| HIGH | scripts/qemu-test/qemutest/suites/wifi.py | 229 | "ip route add default via 10.0.2.2 2>/dev/null; true", | CODE |
| HIGH | scripts/qemu-test/qemutest/suites/onvif.py | 62 | rc, out = guest.run(f"[ -r {path} ] && echo CREDSRC || true") | CODE |
| HIGH | scripts/qemu-test/qemutest/suites/net.py | 247 | guest.run("killall syslogd 2>/dev/null; sleep 1; " | CODE |
| HIGH | scripts/qemu-test/qemutest/suites/net.py | 256 | guest.run("killall syslogd 2>/dev/null; /etc/init.d/S01syslogd start " | CODE |
| HIGH | scripts/qemu-test/qemutest/suites/common.py | 87 | ser.cmd("mkdir -p /root/.ssh && chmod 700 /root/.ssh", 1) | CODE |
| HIGH⚡ | package/thingino-webui/scripts/apply_cdn_fallback.py | 40 | "this.onerror=null;var l=document.createElement('link');l.rel='stylesheet';l.href='/a/vendor/montserrat.css';thi | CODE |
| HIGH⚡ | package/thingino-webui/scripts/apply_cdn_fallback.py | 48 | "this.onerror=null;var l=document.createElement('link');l.rel='stylesheet';l.href='/a/vendor/bootstrap.min.css'; | CODE |
| HIGH⚡ | package/thingino-webui/scripts/apply_cdn_fallback.py | 56 | "this.onerror=null;var l=document.createElement('link');l.rel='stylesheet';l.href='/a/vendor/bootstrap-icons.min | CODE |
| HIGH⚡ | package/thingino-webui/scripts/apply_cdn_fallback.py | 64 | "this.onerror=null;var s=document.createElement('script');s.src='/a/vendor/bootstrap.bundle.min.js';document.hea | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/save_partition_info.py | 12 | def get_mtdparts_from_uboot_env(uboot_env_path): | CODE |
| LOW | scripts/update_packages.py | 230 | def check_git_working_directory() -> bool: | CODE |
| LOW | scripts/update_packages.py | 259 | def stash_uncommitted_changes() -> Optional[str]: | CODE |
| LOW | scripts/update_packages.py | 345 | def download_release_tarball_hash(repo_url: str, tag: str, package_name: str, version: str) -> Optional[Tuple[str, str]] | CODE |
| LOW | scripts/update_packages.py | 925 | def update_package_mk_version(mk_path: Path, package_name: str, old_version: str, new_version: str) -> bool: | CODE |
| LOW | scripts/backchannel-probe.py | 55 | def build_digest_authorization( | CODE |
| LOW | scripts/update-packages.py | 139 | def extract_tarball_name_from_hash(hash_text: str) -> str | None: | CODE |
| LOW | scripts/rtsp-backchannel-probe.py | 75 | def build_digest_authorization( | CODE |
| LOW | scripts/qemu-test/qemutest/suites/wifi.py | 110 | def test_provision_reboot_sta(ctx): | CODE |
| LOW | scripts/qemu-test/qemutest/suites/net.py | 172 | def test_dual_stack_listeners(ctx): | CODE |
| LOW | package/thingino-webui/files/www/a/control-bar.js | 90 | function syncButtonBarCompactState() { | CODE |
| LOW | package/thingino-webui/files/www/a/preview.js | 106 | function formatPreviewHostWithPort(host, port, defaultPort) { | CODE |
| LOW | package/thingino-webui/files/www/a/preview.js | 127 | function markPreviewEndpointCopied(link) { | CODE |
| LOW | package/thingino-webui/files/www/a/preview.js | 259 | function updatePreviewEndpointState(msg) { | CODE |
| LOW | package/thingino-webui/files/www/a/preview.js | 289 | async function loadPreviewEndpointApiKey() { | CODE |
| LOW | package/thingino-webui/files/www/a/preview.js | 895 | async function fetchImagingStateFromAgent() { | CODE |
| LOW | package/thingino-webui/files/www/a/main.js | 108 | function invalidateAgentConfigCache() { | CODE |
| LOW | package/thingino-webui/files/www/a/main.js | 227 | function ensureDebugModalStructure() { | CODE |
| LOW | package/thingino-webui/files/www/a/main.js | 272 | function populateDebugModalContent() { | CODE |
| LOW | package/thingino-webui/files/www/a/main.js | 1085 | function cleanupHeartbeatResources() { | CODE |
| LOW | package/thingino-webui/files/www/a/main.js | 1746 | function ensureConfirmModalStructure() { | CODE |
| LOW | package/thingino-webui/files/www/a/main.js | 1801 | function resolveConfirmIntentClass(intent) { | CODE |
| LOW | package/thingino-webui/files/www/a/main.js | 2072 | function initPasswordRevealToggles(root = document) { | CODE |
| LOW | package/timps/files/www/motors-ui/preview-motors.js | 246 | function normalizePreviewControlMode(value) { | CODE |
| LOW | package/timps/files/www/motors-ui/config-motors.js | 40 | function normalizePreviewControlMode(value) { | CODE |
| LOW | package/timps/files/www/motors-ui/config-motors.js | 81 | function updateJoystickSensitivityInputs() { | CODE |
| LOW | package/timps/files/www/motors-ui/config-motors.js | 94 | function updateDragSensitivityInputs() { | CODE |
| LOW | package/timps/files/www/a/timps-preview.js | 166 | function formatPreviewHostWithPort(host, port, defaultPort) { | CODE |
| LOW | package/timps/files/www/a/timps-preview.js | 178 | function markPreviewEndpointCopied(link) { | CODE |
| LOW | package/timps/files/www/a/timps-preview.js | 278 | function updatePreviewEndpointState(msg) { | CODE |
| LOW | package/prudynt-t/files/www/a/config-rtsp.js | 58 | function updatePasswordFieldVisibility() { | CODE |
| LOW | package/prudynt-t/files/www/a/streamer-config.js | 233 | async function detectSocAndPopulateModes() { | CODE |
| LOW | …/thingino-daynightd/files/www/a/config-photosensing.js | 56 | function disablePhotosensingInputs() { | CODE |
| LOW | …/thingino-daynightd/files/www/a/config-photosensing.js | 227 | async function saveDaynightScheduleParam(param) { | CODE |
| LOW | package/thingino-motors/files/www/a/preview-motors.js | 17 | function normalizePreviewControlMode(value) { | CODE |
| LOW | package/thingino-motors/files/www/a/config-motors.js | 29 | function normalizePreviewControlMode(value) { | CODE |
| LOW | package/thingino-gpio/files/www/a/config-gpio.js | 174 | function createStartupIndicatorCard() { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/sei-overlay.py | 497 | print(f"Error: input file not found: {args.input}", file=sys.stderr) | CODE |
| LOW | scripts/save_partition_info.py | 24 | except Exception: | CODE |
| LOW | scripts/update_packages.py | 366 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 386 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 401 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 431 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 512 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 679 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 697 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 701 | except Exception: | CODE |
| LOW | scripts/update_packages.py | 728 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 809 | except Exception: | CODE |
| LOW | scripts/update_packages.py | 933 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 952 | except Exception as e: | CODE |
| LOW | scripts/update_packages.py | 956 | except Exception: | CODE |
| LOW | scripts/update_packages.py | 1104 | except Exception: | CODE |
| LOW | scripts/update_packages.py | 1219 | except Exception as e: | CODE |
| MEDIUM⚡ | scripts/sei-rtsp.py | 568 | print("Error: choose exactly one of --display, --rtsp, --file.", file=sys.stderr) | CODE |
| MEDIUM | scripts/sei-rtsp.py | 621 | def extract_thread(): | CODE |
| LOW | scripts/sei-rtsp.py | 628 | except Exception: | CODE |
| LOW | scripts/update-packages.py | 157 | except Exception: | CODE |
| LOW | scripts/update-packages.py | 251 | except Exception as e: | CODE |
| LOW | scripts/qemu-test/qemutest/probes.py | 38 | except Exception as e: | CODE |
| LOW | scripts/qemu-test/qemutest/driver.py | 57 | except Exception: | CODE |
| LOW | scripts/qemu-test/qemutest/driver.py | 165 | except Exception: | CODE |
| LOW | scripts/qemu-test/qemutest/driver.py | 181 | except Exception: | CODE |
| LOW | scripts/qemu-test/qemutest/driver.py | 227 | except Exception: | CODE |
| LOW | scripts/qemu-test/qemutest/driver.py | 235 | except Exception: | CODE |
| LOW | scripts/qemu-test/qemutest/driver.py | 273 | except Exception as e: | CODE |
| MEDIUM | scripts/qemu-test/qemutest/driver.py | 224 | def cleanup(sig=None, frame=None): | CODE |
| LOW | scripts/qemu-test/qemutest/suites/usb.py | 40 | except Exception: | CODE |
| LOW | scripts/qemu-test/qemutest/suites/usb.py | 51 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | build-container.sh | 7 | # Usage: | COMMENT |
| LOW | docs/thingino/tools/snmp/thingino-snmp-monitor.sh | 9 | # Usage: | COMMENT |
| LOW | scripts/check-plugins.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/cfg-backup.sh | 5 | # Usage: | COMMENT |
| LOW | scripts/worktree.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/generate_uboot_patch.sh | 26 | # Usage: | COMMENT |
| LOW | scripts/stitcher.sh | 8 | # Usage: | COMMENT |
| LOW | scripts/check-busybox-lopts.sh | 14 | # Usage: | COMMENT |
| LOW | scripts/mediamtx.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/user-push.sh | 30 | # Usage: | COMMENT |
| LOW | scripts/prosody-test.sh | 10 | # Usage: | COMMENT |
| LOW | scripts/check-do-not-edit.sh | 7 | # Usage: | COMMENT |
| LOW | scripts/go2rtc.sh | 4 | # Usage: | COMMENT |
| LOW | scripts/make-bundle.sh | 5 | # Usage: | COMMENT |
| LOW⚡ | scripts/sei-rtsp-go2rtc/run.sh | 34 | # Usage: | COMMENT |
| LOW | scripts/tts/batch.sh | 3 | # Usage: | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | docs/dev/adding-kernel-4.4-camera.md | 16 | ## Step 1: Verify SOC Support | COMMENT |
| LOW | docs/dev/adding-kernel-4.4-camera.md | 124 | ## Step 2: Create Camera-Specific Files | COMMENT |
| LOW | docs/dev/adding-kernel-4.4-camera.md | 195 | ## Step 3: Create Device Tree File | COMMENT |
| LOW | docs/dev/adding-kernel-4.4-camera.md | 387 | ## Step 4: GPIO Pin Mapping | COMMENT |
| LOW | docs/dev/adding-kernel-4.4-camera.md | 428 | ## Step 5: Verify Pinctrl Options | COMMENT |
| LOW | docs/dev/adding-kernel-4.4-camera.md | 444 | ## Step 6: Build and Test | COMMENT |
| LOW | docs/dev/adding-kernel-4.4-camera.md | 481 | ## Step 7: Testing on Hardware | COMMENT |
| LOW | scripts/backup_overlay.sh | 24 | # Step 1: Get camera image name | COMMENT |
| LOW⚡ | scripts/backup_overlay.sh | 44 | # Step 2: Build output filename | COMMENT |
| LOW⚡ | scripts/backup_overlay.sh | 52 | # Step 3: Stream overlay tarball directly from camera via SSH. | COMMENT |
| LOW⚡ | scripts/backup_overlay.sh | 62 | # Step 4: Verify the tarball | COMMENT |
| LOW | package/prudynt-t/docs/REMOTE_DEBUGGING_MANUAL.md | 36 | ### Step 1: Prepare Development Environment | COMMENT |
| LOW | package/prudynt-t/docs/REMOTE_DEBUGGING_MANUAL.md | 59 | ### Step 2: Start GDBserver on Camera | COMMENT |
| LOW | package/prudynt-t/docs/REMOTE_DEBUGGING_MANUAL.md | 76 | ### Step 3: Connect from Development Machine | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | scripts/update_packages.py | 272 | # Create a stash with a descriptive message | COMMENT |
| MEDIUM | scripts/update_packages.py | 483 | # Create the commit | COMMENT |
| MEDIUM | scripts/rootfs_script.sh | 84 | # Create a temporary file | COMMENT |
| MEDIUM | scripts/menu/menu1-dev-sel.sh | 10 | # Define a function to read items from a directory | COMMENT |
| MEDIUM | .github/workflows/buildroot-dl-cache.yaml | 186 | # Create the rolling release once; refresh its notes on later runs. Never mark it 'latest'. | COMMENT |
| MEDIUM | package/thingino-webui/files/www/x/session.sh | 22 | # Create a new session | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/sei-overlay.py | 46 | CODE | |
| LOW | scripts/sei-overlay.py | 310 | CODE | |
| LOW | scripts/sei-overlay.py | 390 | CODE | |
| LOW | scripts/sei-overlay.py | 448 | CODE | |
| LOW | scripts/update_packages.py | 374 | CODE | |
| LOW | scripts/update_packages.py | 611 | CODE | |
| LOW | scripts/update_packages.py | 814 | CODE | |
| LOW | scripts/update_packages.py | 1126 | CODE | |
| LOW | scripts/sei-rtsp.py | 526 | CODE | |
| LOW | scripts/sei-rtsp.py | 112 | CODE | |
| LOW | scripts/sei-rtsp.py | 245 | CODE | |
| LOW | scripts/backchannel-probe.py | 123 | CODE | |
| LOW | scripts/render_template.py | 58 | CODE | |
| LOW | scripts/qemu-test/qemutest/netlab.py | 236 | CODE | |
| LOW | scripts/qemu-test/qemutest/netlab.py | 296 | CODE | |
| LOW | scripts/qemu-test/qemutest/netlab.py | 442 | CODE | |
| LOW | scripts/qemu-test/qemutest/netlab.py | 540 | CODE | |
| LOW | scripts/qemu-test/qemutest/driver.py | 61 | CODE | |
| LOW | scripts/qemu-test/qemutest/report.py | 24 | CODE | |
| LOW | scripts/qemu-test/qemutest/suites/onvif.py | 8 | CODE | |
| LOW | package/thingino-webui/scripts/assemble_plugins.py | 87 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | scripts/sei-rtsp.py | 398 | # Might be a fontconfig name – just pass through | COMMENT |
| MEDIUM | scripts/qemu-test/run.sh | 2 | # Run the QEMU test harness for a thingino test profile. | COMMENT |
| MEDIUM | scripts/qemu-test/run.sh | 4 | # Usage: run.sh <profile> [extra harness args...] | COMMENT |
| MEDIUM | scripts/qemu-test/qemutest/netlab.py | 395 | # the RA default route well inside the harness poll window (a 30s | COMMENT |
| MEDIUM | package/prudynt-t/scripts/prudynt-debug-helper.sh | 269 | echo " $0 manual # Show comprehensive debugging manual" | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/sei-overlay.py | 30 | CODE | |
| LOW | scripts/save_partition_info.py | 6 | CODE | |
| LOW | scripts/update_packages.py | 12 | CODE | |
| LOW | scripts/update_package_inventory.py | 3 | CODE | |
| LOW | scripts/render_template.py | 21 | CODE | |
| LOW | scripts/render_template.py | 24 | CODE | |
| LOW | scripts/tts/kokoro/modules.py | 5 | CODE | |
| LOW | package/thingino-webui/scripts/assemble_plugins.py | 15 | CODE | |
| LOW | package/thingino-secureboop/ingenic_t31_spl_patcher.py | 18 | CODE | |
| LOW | package/thingino-secureboop/ingenic_bootrom_patcher.py | 70 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/backup_overlay.sh | 24 | # Step 1: Get camera image name | COMMENT |
| LOW⚡ | scripts/backup_overlay.sh | 44 | # Step 2: Build output filename | COMMENT |
| LOW⚡ | scripts/backup_overlay.sh | 52 | # Step 3: Stream overlay tarball directly from camera via SSH. | COMMENT |
| LOW⚡ | scripts/backup_overlay.sh | 62 | # Step 4: Verify the tarball | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | package/thingino-webui/AUTHENTICATION.md | 161 | curl -H "X-API-Key: YOUR_API_KEY" http://CAMERA_IP/x/ch0.jpg -o snapshot.jpg | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/update-packages.py | 123 | CODE | |
| LOW | scripts/tts/kokoro/istftnet.py | 376 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | package/thingino-webui/files/www/tool-send2-email.html | 90 | <input type="email" class="form-control" id="email_to_address" name="email_to_address" placeholder="ad | CODE |