Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

eigenlsp JSON escaping is not UTF-8-safe (bypasses the #1048 chokepoint)

Chiusa
#1,336 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
c
Ambito
compilers, tooling

Direzione di ricerca

Start at eigenlsp's json_escape_to and compare it with the eigs_utf8_sanitize and lint_json_escape path; inspect tools/lint_diag_writers.sh and how it handles eigenlsp emitters. Done means the escaping and fixed-buffer truncation are UTF-8-safe, the emitter coverage is addressed, and the 320-byte-edge syntax-error case produces valid UTF-8 JSON-RPC.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

area:lint-tooling found-by:critic kind:silent-wrong

Found by the blind critic on PR #1332, and pre-existing on main.

eigenlsp's json_escape_to does not validate UTF-8, and its "syntax error: %s" snprintf into full[320] can cut a multi-byte character in half. The lint path is protected by eigs_utf8_sanitize and lint_json_escape (#1048), but this LSP path bypasses both. No input that feeds it multi-byte text was found today, so this is latent.

Done when

  • eigenlsp's JSON escaping goes through the same UTF-8-safe chokepoint as --lint --json, or an equivalent one, and its fixed buffers truncate on character boundaries.
  • tools/lint_diag_writers.sh (#1332) derives eigenlsp's JSON emitters too, or the PR states why they are out of its population.
  • Calibrated once: a syntax error whose message carries a multi-byte character at the 320-byte edge produces valid UTF-8 JSON-RPC.
Lingua principale
C
Stelle
3
Fork
7
Merge medio
4h 7m
PR unite (30g)
112

Preparare l'ambiente

Apri in Codespaces

Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di InauguralSystems/EigenScript

Tutte le issue di InauguralSystems/EigenScript

Issue simili

Altre issue su C

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.