Fil-C hace que setjmp/longjmp y ucontext sean seguros en memoria

✍️ OpenClawRadar📅 Publicado: 1 de julio de 2026🔗 Source
Fil-C hace que setjmp/longjmp y ucontext sean seguros en memoria
Ad

Fil-C, el dialecto de C con seguridad de memoria, ahora soporta setjmp/longjmp y las APIs ucontext (setcontext, getcontext, makecontext, swapcontext) sin corrupción de pila ni violaciones de capacidades. Esta funcionalidad llegó en la versión 0.680 y está disponible al compilar desde el código fuente.

El Problema con las APIs de Contexto

Estas APIs son notoriamente inseguras porque el mal uso puede restaurar una pila colgante. Los errores comunes incluyen:

  • Llamar a setjmp o getcontext en una función, y luego retornar — el contexto guardado apunta a un marco de pila que ya no existe.
  • Salir del hilo y luego intentar restaurar la ejecución en una pila liberada.
  • Crear un contexto con makecontext en una pila, liberar esa pila, y luego hacer swapcontext o setcontext hacia ella.
  • Pasar el contexto actualmente en ejecución como segundo argumento a swapcontext (intercambiar consigo mismo).

En C estándar ("Yolo-C"), estos errores causan corrupción silenciosa de la pila, fallos difíciles de depurar y posibles exploits de seguridad. En Fil-C, todos estos casos producen un panic en el punto de mal uso.

Ad

Cómo Fil-C Implementa la Seguridad de Memoria

El enfoque de Fil-C difiere para setjmp/longjmp frente a ucontext. Para setjmp/longjmp, el desafío clave es que setjmp retorna dos veces — una cuando se llama, y otra después de longjmp. El acto de guardar el contexto significa que el compilador necesita manejar correctamente las variables volátiles, pero Fil-C asegura que restaurar un contexto nunca acceda a memoria liberada o inválida.

Para ucontext, Fil-C gestiona las pilas de manera que la operación sea legal o genere un panic, porque los marcos de pila colgantes son simplemente imposibles.

Ejemplo: setjmp/longjmp en Fil-C

El siguiente programa demuestra el comportamiento:

#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("No debería llegar aquí.\n"); return 1; }

Esto imprime x = 666 y sale. Sin volatile, el compilador podría optimizar e imprimir 42. Fil-C no altera las semánticas de optimización, pero previene la corrupción de memoria en cualquier caso.

¿Para Quién?

Desarrolladores que usan corutinas basadas en ucontext (por ejemplo, Boost fibers) o setjmp/longjmp para manejo de excepciones en programas C que quieren seguridad de memoria.

📖 Lee la fuente completa: HN AI Agents

Ad

👀 Ver también

OpenObscure: Cortafuegos de Privacidad de Código Abierto para Agentes de IA en Dispositivos
Seguridad

OpenObscure: Cortafuegos de Privacidad de Código Abierto para Agentes de IA en Dispositivos

OpenObscure es un cortafuegos de privacidad de código abierto y en el dispositivo que se sitúa entre los agentes de IA y los proveedores de LLM. Utiliza el cifrado FF1 de preservación de formato con AES-256 para cifrar los valores de PII antes de que las solicitudes salgan de tu dispositivo, manteniendo la estructura de los datos mientras protege la privacidad.

OpenClawRadar
Los LLM pueden identificar a usuarios anónimos de foros con un 68% de precisión y un 90% de exactitud.
Seguridad

Los LLM pueden identificar a usuarios anónimos de foros con un 68% de precisión y un 90% de exactitud.

Investigadores utilizaron Gemini y ChatGPT para analizar publicaciones de Hacker News y Reddit, identificando al 68% de los usuarios anónimos con un 90% de precisión. Los modelos completaron en minutos lo que a los humanos les tomaría horas o sería imposible.

OpenClawRadar
Audite sus permisos de Claude Code: una guía práctica para limitar el acceso a herramientas
Seguridad

Audite sus permisos de Claude Code: una guía práctica para limitar el acceso a herramientas

Un usuario de Reddit auditó su configuración de Claude Code y encontró herramientas con permisos excesivos que podían editar archivos .env y configuraciones de producción. Pasos prácticos: auditar herramientas globales vs. por proyecto, revisar CLAUDE.md en busca de secretos y delimitar el acceso a archivos por directorio.

OpenClawRadar
Envoltorio de Contenido Externo de OpenClaw para la Defensa contra Inyección de Solicitudes
Seguridad

Envoltorio de Contenido Externo de OpenClaw para la Defensa contra Inyección de Solicitudes

OpenClaw utiliza un envoltorio de contenido externo que etiqueta automáticamente los resultados de búsqueda web, respuestas de API y contenido similar con advertencias de que no es confiable, preparando al LLM para ser escéptico y más propenso a rechazar instrucciones maliciosas.

OpenClawRadar