Estoy diseñando un desafío de tarea para los estudiantes que están aprendiendo sobre la seguridad de la memoria y escribiendo el código C seguro. Como parte de esto, estoy buscando una pequeña tarea de programación en la que no sea trivial escribir código C que esté libre de desbordamientos de búfer, errores de matriz fuera de límites y / u otros errores de seguridad de la memoria. ¿Cuál sería un buen ejemplo de tal tarea?
En otras palabras: especifico la funcionalidad deseada; lo implementan en C; y si no tienen cuidado al implementar, existe una gran posibilidad de que su código tenga una vulnerabilidad de seguridad de la memoria. Idealmente, preferiría algo que pueda implementarse de manera concisa (unos pocos cientos de líneas de código, a lo sumo) para mantener la tarea de un tamaño manejable, y sería extraordinario si la tarea fuera de alguna manera industrial o prácticamente relevante o realista o representante de la programación del mundo real.
Para dar un ejemplo de un dominio diferente, implementar una búsqueda binaria en una lista ordenada es un ejemplo clásico de una tarea de programación fácil de especificar donde, si no tiene cuidado al implementarla, existe una gran posibilidad de que tenga algún tipo de error lógico (por ejemplo, un error off-by-one, un bucle infinito en algunas entradas, ese tipo de cosas). ¿Existe alguna buena tarea correspondiente, por seguridad, y específicamente vulnerabilidades de seguridad de la memoria?