Fil-C torna a memória segura para setjmp/longjmp e ucontext

✍️ OpenClawRadar📅 Publicado: July 1, 2026🔗 Source
Fil-C torna a memória segura para setjmp/longjmp e ucontext
Ad

Fil-C, o dialeto C com segurança de memória, agora suporta setjmp/longjmp e as APIs ucontext (setcontext, getcontext, makecontext, swapcontext) sem corrupção de pilha ou violações de capacidade. O recurso chegou na versão 0.680 e está disponível ao compilar a partir do código-fonte.

O Problema com as APIs de Contexto

Essas APIs são notoriamente inseguras porque o uso indevido pode restaurar uma pilha inválida. Bugs comuns incluem:

  • Chamar setjmp ou getcontext em uma função e depois retornar — o contexto salvo aponta para um quadro de pilha que não existe mais.
  • Sair da thread e depois tentar restaurar a execução em uma pilha liberada.
  • Criar um contexto com makecontext em uma pilha, liberar essa pilha e depois usar swapcontext ou setcontext para ela.
  • Passar o contexto atualmente em execução como segundo argumento para swapcontext (trocar para si mesmo).

Em C padrão ("Yolo-C"), esses bugs causam corrupção silenciosa de pilha, travamentos difíceis de depurar e potenciais explorações de segurança. No Fil-C, todos esses casos geram um pânico no ponto do uso indevido.

Ad

Como o Fil-C Implementa Segurança de Memória

A abordagem do Fil-C difere para setjmp/longjmp versus ucontext. Para setjmp/longjmp, o principal desafio é que setjmp retorna duas vezes — uma quando chamado, e outra após longjmp. O ato de salvar o contexto significa que o compilador precisa lidar corretamente com variáveis anotadas como voláteis, mas o Fil-C garante que restaurar um contexto nunca acesse memória liberada ou inválida.

Para ucontext, o Fil-C gerencia pilhas de forma que a operação seja legal ou cause pânico, porque quadros de pilha soltos são simplesmente impossíveis.

Exemplo: setjmp/longjmp no Fil-C

O programa a seguir demonstra o comportamento:

#include <setjmp.h>
#include <stdio.h>

int main(int argc, char** argv) { volatile int x = 42; jmp_buf jb; if (setjmp(jb)) { printf("x = %d\n", x); return 0; } x = 666; longjmp(jb, 1); printf("Should not get here.\n"); return 1; }

Isso imprime x = 666 e sai. Sem volatile, o compilador pode otimizar e imprimir 42. O Fil-C não altera as semânticas de otimização, mas previne corrupção de memória independentemente.

Para Quem?

Desenvolvedores que usam corrotinas baseadas em ucontext (por exemplo, Boost fibers) ou setjmp/longjmp para tratamento de exceções em programas C que desejam segurança de memória.

📖 Leia a fonte completa: HN AI Agents

Ad

👀 See Also

Pacote MCP de Varredura de Segurança Revela Capacidades Destrutivas Generalizadas Sem Confirmação
Security

Pacote MCP de Varredura de Segurança Revela Capacidades Destrutivas Generalizadas Sem Confirmação

Uma análise de segurança de 2.386 pacotes MCP no npm descobriu que 63,5% expõem operações destrutivas como exclusão de arquivos e remoção de bancos de dados sem exigir confirmação humana. O pesquisador descobriu que 49% tinham problemas de segurança no geral, com 402 vulnerabilidades críticas e 240 de alta gravidade.

OpenClawRadar
Pi: Agente Cibernético de IA de $100M do Ex-Hacker da Tesla Protege xAI, Corrige Bugs em Minutos
Security

Pi: Agente Cibernético de IA de $100M do Ex-Hacker da Tesla Protege xAI, Corrige Bugs em Minutos

Pi, um agente de segurança de IA do ex-hacker líder da Tesla Yoni Ramon, usa triagem de vulnerabilidades sensível ao contexto e correção automatizada. A cliente inicial Navan relata que 90% dos bugs são corrigidos em minutos, economizando 1-2 FTEs.

OpenClawRadar
Proxy McpVanguard Bloqueia Exfiltração de Dados da Habilidade OpenClaw
Security

Proxy McpVanguard Bloqueia Exfiltração de Dados da Habilidade OpenClaw

Um desenvolvedor criou o McpVanguard, um proxy que fica entre os agentes de IA e suas ferramentas para bloquear cadeias de chamadas maliciosas, como exfiltração de dados, em resposta à descoberta da Cisco de que habilidades do OpenClaw realizavam roubo silencioso de dados. Ele usa correspondência de padrões, pontuação de intenção semântica e detecção de cadeias comportamentais.

OpenClawRadar
13 palavras no Reddit podem manipular a busca de IA: Pesquisa de Cornell
Security

13 palavras no Reddit podem manipular a busca de IA: Pesquisa de Cornell

A pesquisa da Cornell mostra que um trecho de 13 palavras no Reddit ou Wikipedia pode envenenar agentes de busca de IA. Metade de todas as citações de IA vêm de sites UGC, tornando trivial para marcas injetarem conteúdo promocional.

OpenClawRadar