Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

node:fs: calling writeFileSync/appendFileSync with negative 0 causes an assertion failure

Fechada
#65,886 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
65/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
javascript, node.js

Direção de pesquisa

Comece em src/node_file.cc, próximo à assertion de WriteFileUtf8 reportada na linha 2764, usando as reproduções writeFileSync(-0, "") e appendFileSync(-0, ""). Rastreie como as APIs fs lidam com o argumento de caminho e adicione cobertura para zero negativo; está concluído quando nenhuma das duas chamadas aborta e ambas se comportam como zero positivo.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

fs
Version

v26.8.1

Platform
Linux nixdesk 6.18.48 #1-NixOS SMP PREEMPT_DYNAMIC Fri Aug 28 06:22:54 UTC 2026 x86_64 GNU/Linux
Subsystem

fs

What steps will reproduce the bug?

require("node:fs").writeFileSync(-0, "")

or

require("node:fs").appendFileSync(-0, "")

How often does it reproduce? Is there a required condition?

it always happens on my machine. i have not tried on any other computer or os

What is the expected behavior? Why is that the expected behavior?

for it to do the same thing as positive zero i assume

What do you see instead?
❯ echo 'require("node:fs").writeFileSync(-0, "")' | node -

  #  node[264400]: void node::fs::WriteFileUtf8(const v8::FunctionCallbackInfo<v8::Value>&) at ../../src/node_file.cc:2764
  #  Assertion failed: (*path) != nullptr

----- Native stack trace -----

 1: 0x629c801c0228  [node]
 2: 0x629c801c0b97 node::Assert(node::AssertionInfo const&) [node]
 3: 0x629c801cda7b  [node]
 4: 0x729babdcfae9 

----- JavaScript stack trace -----

1: writeFileSync (node:fs:2997:20)
2: [stdin]:1:20
3: runScriptInThisContext (node:internal/vm:219:10)
4: node:internal/process/execution:485:12
5: [stdin]-wrapper:6:24
6: runScriptInContext (node:internal/process/execution:483:60)
7: evalFunction (node:internal/process/execution:317:30)
8: evalTypeScript (node:internal/process/execution:329:3)
9: node:internal/main/eval_stdin:51:5
10: node:internal/process/execution:239:5


fish: Job 1, 'echo 'require("node:fs").writeF…' terminated by signal SIGABRT (Abort)
Additional information

No response

Linguagem predominante
JavaScript
Estrelas
122k
Forks
38.4k
Merge médio
4d 4h
PRs com merge (30d)
271

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de nodejs/node

Todas as issues de nodejs/node

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.