Use the bounded printable formatter for two remaining debug paths that can
log protocol-derived byte fields directly.
The SAP route suppression log can print SAP-derived server names, including
non-printable bytes advertised by newer NetWare service types. The namespace
search diagnostic can also contain DOS wildcard bytes such as 0xff padding.
Format both fields through visable_data() so diagnostics stay readable and do
not emit raw control or high-bit bytes.
This is logging-only and does not change SAP, routing, or namespace behavior.
Stop logging the build_base NW_HPATH component buffer as a raw C string.
The path buffer is length-prefixed and not NUL-terminated. Printing it with %s
can over-read into following packet or process memory and pollute unrelated
client/test output, for example ZIP output appearing inside MAPDEBUG lines.
Use the safe NW_HPATH component formatter for the build_base ENTER log line as
well as individual component debug output.
No protocol behavior change.
Stop logging NW_HPATH path component buffers with %s in MAPDEBUG output.
The namespace path buffer is not a NUL-terminated C string. It contains a list
of length-prefixed components, so printing it directly can over-read into
following packet or process memory and pollute unrelated client/test output.
Add small debug formatters for complete NW_HPATH component lists and individual
components, and use them in build_base/add_hpath_to_nwpath debug messages.
No protocol behavior change.
Align rename permission checks with NetWare trustee semantics. A same-directory
rename should be controlled by the Modify right instead of requiring a broader
R/W/M combination. For moves to another parent directory, require Create rights
on the destination parent.
Also invalidate the trustee rights cache after adding or deleting trustee
assignments so newly granted rights are visible immediately to subsequent
operations.
This fixes the MARIO trustee test where rename failed with R/W/M/F and even
R/W/C/E/M/F, while the same operation succeeded only with the broader all-rights
set.