[PATCH v3 0/4] hexagon semihosting: Address coverity finding

Brian Cain posted 4 patches 3 days, 3 hours ago
include/hw/hexagon/hexagon.h              |  14 +-
target/hexagon/cpu_helper.h               |   2 -
hw/hexagon/hex-subsys.c                   |  32 ++-
target/hexagon/cpu_helper.c               |  48 +----
target/hexagon/hexswi.c                   | 242 +++++++++++++++++-----
tests/functional/hexagon/test_systests.py |  11 +
6 files changed, 235 insertions(+), 114 deletions(-)
[PATCH v3 0/4] hexagon semihosting: Address coverity finding
Posted by Brian Cain 3 days, 3 hours ago
These fixes are to mitigate the issue(s) reported by Coverity and Peter
Maydell.

In v3:
- The first patch now uses get_user_*() for semihosting argument accesses,
instead of hexagon_read_memory(), now removed.
- For HEX_SYS_OPEN, filename/len validation errors are handled together.

In v2:
- HEX_SYS_OPEN switched to lock_user() from lock_user_string()
- pulled in {open,read,close}dir from the a prev patch, changes since that v2:
  * Replaces POSIX DIR, opendir(), readdir(), and closedir() with portable GLib GDir APIs.
  {un,}lock_user
  * Replaces the fixed BUFSIZ path buffer and byte-by-byte guest reads with lock_user_string()/unlock_user().
  * Adds SemihostingDir, which stores the GDir plus enumeration state
  * Synthesizes . and .., omitted by glib
  * Writes inode zero instead of host d_ino, which GLib does not expose portably.
  * Limits returned names to 254 characters plus NUL, rather than depending on host struct dirent::d_name size.
  Prev opendir v2: https://lore.kernel.org/qemu-devel/9823f67f-bfc6-40e2-ba3e-cb02e53a4004@oss.qualcomm.com/

v2: https://lore.kernel.org/qemu-devel/20260914223159.2735262-1-brian.cain@oss.qualcomm.com/
v1: https://lore.kernel.org/qemu-devel/20260906222551.3712954-1-brian.cain@oss.qualcomm.com/

Brian Cain (3):
  target/hexagon: fix semihosting OPEN filename handling
  target/hexagon: fix semihosting STAT filename handling
  target/hexagon: fix semihosting ACCESS filename handling

Matheus Tavares Bernardino (1):
  target/hexagon: add directory semihosting operations

 include/hw/hexagon/hexagon.h              |  14 +-
 target/hexagon/cpu_helper.h               |   2 -
 hw/hexagon/hex-subsys.c                   |  32 ++-
 target/hexagon/cpu_helper.c               |  48 +----
 target/hexagon/hexswi.c                   | 242 +++++++++++++++++-----
 tests/functional/hexagon/test_systests.py |  11 +
 6 files changed, 235 insertions(+), 114 deletions(-)

-- 
2.34.1