|
|
9dd5821436
|
v0.7.5: OAuth CR-taint fix + mouse opt-in + CR-safety sweep
- Fix bash arithmetic crash on MobaXterm/Cygwin: $(date +%s) was
returning CR-tainted values landing in $(( )) operands
- Mouse mode off by default; opt in via LARRY_MOUSE=1 or /mouse on
- Comprehensive CR-safety sweep across lib/*.sh and larry.sh — every
command-substitution result, file read, and user input that feeds
an arithmetic context, case dispatcher, or path/header is now
CR-stripped at the source
New shared helper lib/cygwin-safe.sh defines three primitives:
coerce_int VAL [DEFAULT] — for arithmetic / integer-test operands
strip_cr VAL — for case patterns, regex tests, paths, headers
read_clean VAR [PROMPT] — read -r wrapper that strips CR pre-assign
Hardened call sites (14 files, 60+ patch points):
- larry.sh: status-line date/tput, 3 y/N approvals, auth menu, API key
- lib/oauth.sh: cmd_login + cmd_refresh date+%s captures
- lib/nc-engine.sh: 5 y/N action prompts + find|wc arithmetic
- lib/nc-msgs.sh: parse_time_ms (4 date sites) + meta-TSV time + MSG_COUNT
- lib/nc-regression.sh: tr|wc count + hl7-diff ?-fallback arithmetic
- lib/nc-smat-diff.sh: A_COUNT/B_COUNT/DIFFS_TOTAL
- lib/nc-insert-protocol.sh: every awk-emitted line number → head/tail math
- lib/journal.sh: _next_seq wc -l arithmetic
- lib/lessons.sh: _next_id/_count + 2 y/N prompts
- lib/hl7-sanitize.sh: cmd_count + clear-table y/N
- lib/ssh-helper.sh: 4 local+remote wc -c integer compares
- lib/nc-find.sh, lib/nc-table.sh, lib/nc-document.sh, larry-rollback.sh
Reproduces the exact error Bryan hit:
bash: ...: arithmetic syntax error: invalid arithmetic operator (error token is "")
lib/cygwin-safe.sh added to MANIFEST so it auto-syncs on next launch.
Co-Authored-By: Clover (Claude Opus 4.7) <noreply@anthropic.com>
|
2026-05-27 19:17:48 -07:00 |
|