Portfolio

swift-system

EncerradoOpen SourceOpen Source

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

SwiftGitWindowsOpen Source

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.