fix(api): add nil guard in volume mount response conversion

Aperta Adatta ai principianti
#3,450 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
88/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
go
Ambito
api, backend

Direzione di ricerca

Inizia in packages/api/internal/handlers/sandboxes_list.go, in convertFromDBMountsToAPIMounts, quindi esamina i casi correlati in packages/api/internal/handlers/volume_util_test.go. Esegui i test dell’handler e aggiungi la copertura per un elemento mount nil. Il lavoro è completato quando un input sparso non causa più panic e le voci nil vengono omesse dalla risposta dell’API.

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

Descrizione

Problem

In packages/api/internal/handlers/sandboxes_list.go, convertFromDBMountsToAPIMounts converts database volume mount slice items into API response structs (api.SandboxVolumeMount). If the input slice contains a nil element (e.g. unmarshaled from JSONB payloads containing sparse/null entries), accessing item.Name or item.Path triggers a nil pointer dereference panic, failing the active HTTP request goroutine for sandbox GET/LIST endpoints.

Root Cause

convertFromDBMountsToAPIMounts iterated directly over mounts without checking if item == nil.

Setting / Factor Current Value / State Intended / Expected
File / Component packages/api/internal/handlers/sandboxes_list.go:L346-L359 Defensive nil element guard
Behavior item.Name dereference panics on nil item Skip nil items safely

Reproduction Steps

  1. Invoke convertFromDBMountsToAPIMounts([]*dbtypes.SandboxVolumeMountConfig{nil}).
  2. Observed result: Nil pointer dereference panic.
  3. Expected result: Skips nil item, returns empty slice pointer.
mounts := []*dbtypes.SandboxVolumeMountConfig{nil}
res := convertFromDBMountsToAPIMounts(mounts) // panics on item.Name

Technical Context

  • Files affected: packages/api/internal/handlers/sandboxes_list.go, packages/api/internal/handlers/volume_util_test.go
  • Subsystem: Control Plane API
  • Impact: Low/Medium (Defensive nil safety)

Proposed Changes

# Change File(s) Affected Complexity
1 Add if item == nil { continue } guard in convertFromDBMountsToAPIMounts sandboxes_list.go Low
2 Add unit tests in volume_util_test.go volume_util_test.go Low
Lingua principale
Go
Stelle
1.6k
Fork
438
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Apri la guida per i contributori

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 e2b-dev/runtime

Tutte le issue di e2b-dev/runtime

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.