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

dotenvx encrypt leaves .env empty if it is killed while writing it

Chiusa Adatta ai principianti
#1,012 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à
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
62/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
javascript, nodejs
Ambito
cli, security

Direzione di ricerca

Inizia da writeFileX in src/lib/helpers/fsx.js, che dotenvx encrypt, set, decrypt e del usano tutti per riscrivere .env. Riproduci il problema con il comando strace indicato nell'issue e conferma che il file scende a 0 byte. La correzione consiste nello scrivere il nuovo contenuto in un file temporaneo nella stessa directory e rinominarlo sopra .env, così che un'interruzione lasci o il contenuto vecchio o quello nuovo. È completato quando la riproduzione con strace lascia .env integro e i test esistenti continuano a passare.

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

Descrizione

dotenvx encrypt writes .env.keys, then rewrites .env with fs.promises.writeFile (writeFileX in src/lib/helpers/fsx.js, the same on main at da2acf75cb), which empties the file before it writes. If the process is killed in between, .env is left at 0 bytes and its values are gone; .env is usually not in version control. set, decrypt and del use the same write.

To reproduce (dotenvx 2.32.4, Debian 13 arm64):

printf 'DB_PASSWORD=hunter2\n' > .env
strace -f -qq -P "$PWD/.env" -e inject=write,pwrite64:signal=KILL dotenvx encrypt -f .env
ls -la

.env goes from 20 bytes to 0, while .env.keys is written.

Expected: .env holds its old content or its new content.

Found with Sideeye, a personal open-source tool, no commercial interest; say if you would rather not have such reports. Not measured: power loss.

Lingua principale
JavaScript
Stelle
5.8k
Fork
166
Merge medio
4h 28m
PR unite (30g)
34

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna 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 dotenvx/dotenvx

Tutte le issue di dotenvx/dotenvx

Issue simili

Altre issue su JavaScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.