swift-system
Contribuição integrada ao repositório swift-system da Apple para corrigir um bug de I/O no Windows envolvendo buffers grandes.
Visão geral
Contribuí para o repositório swift-system da Apple com um PR integrado que corrigiu um problema de corretude no Windows envolvendo pread/pwrite. A conversão do tamanho do buffer para DWORD podia truncar silenciosamente valores acima de 4 GB, causando leituras ou escritas parciais sem retornar o erro esperado. A correção adicionou validação antes da chamada ao sistema e testes automatizados para garantir o comportamento sem exigir grandes alocações de memória.
Qual era o modo de falha?
Os adaptadores do Windows aceitavam um tamanho de buffer mais amplo que o DWORD usado pela chamada do sistema operacional. A conversão de um valor acima desse limite podia manter silenciosamente apenas os bits inferiores. Em vez de rejeitar a solicitação, pread ou pwrite executava uma operação menor e retornava um resultado parcial enganoso.
Como o limite foi corrigido?
A correção valida o tamanho antes de entrar na operação do sistema. Solicitações que não podem ser representadas pela API do Windows agora seguem o caminho de erro esperado, em vez de serem truncadas na conversão. Manter a verificação no adaptador torna a restrição da plataforma explícita e evita comportamento ambíguo dentro da chamada.
Como testar o caso com segurança?
Alocar um buffer maior que quatro gigabytes deixaria o teste caro e instável. A cobertura automatizada exercita o limite da conversão sem exigir essa alocação, provando que o tamanho inválido é rejeitado antes de qualquer I/O. Assim, o teste de regressão permanece focado, rápido e viável na integração contínua do projeto.
O que a contribuição exigiu?
O trabalho envolveu rastrear um comportamento específico da plataforma, definir o contrato de falha correto e preparar uma mudança pequena alinhada às convenções de uma base open source consolidada. O pull request foi revisado e integrado ao swift-system da Apple, transformando a investigação em uma correção mantida com cobertura contra regressões.
Stack
Links
- Período
- 2026
- Status
- Encerrado
- Tipo
- Open Source
- Contexto
- Open Source
Continue explorando
Compare este trabalho com outros projetos ou leia os artigos técnicos sobre arquitetura, segurança e engenharia de software.