Todas las lecciones Read in English

Seguridad a fondo · Unidad 21 · Lección 1 de 6

La longitud debe caber

Compara una conversión de texto con su capacidad en bytes, incluido el terminador.

3 minlistaLección breve

Para prepararteSeguridad de memoria: límites y vida útil

Ver todas las lecciones de este tema

Después de esta lección puedes

  • Calcula los bytes necesarios a partir de un registro de codificación e identifica la validación pendiente.

Una idea. Una situación. Una decisión razonada.

Cómo funciona

Las operaciones dependen de tamaños, posiciones y vida del destino. Verifica relaciones con abstracciones seguras. Comprobar una longitud no basta si conversión o aritmética cambian el espacio requerido. Un fallo puede revelar un defecto sin demostrar por sí solo una consecuencia de seguridad concreta.

Representación de entrada → Capacidad necesaria → Operación limitadaRepresentación de entradaCapacidad necesariaOperación limitada
Sigue la relación: Representación de entrada → Capacidad necesaria → Operación limitada.

Cuenta lo que almacena la operación

Un campo ficticio de nombre pasa por un adaptador de texto nativo. Su contrato exige bytes UTF-8 seguidos de un byte cero. El informe proporcionado ya cuenta los bytes reales; no necesitas deducirlos del texto visible.

Registro Informe de codificación Destino
A Cuatro puntos de código, cuatro bytes Seis bytes
B Cuatro puntos de código, siete bytes Seis bytes

Decisión razonada: A necesita cinco bytes con el terminador, por lo que supera esta comprobación de capacidad. B necesita ocho: faltan dos bytes. Ambos muestran cuatro puntos de código, pero necesitan distinto espacio. Un punto de código es un valor Unicode; no garantiza un byte ni un símbolo visible.

No recortes B silenciosamente a seis bytes. Podrías partir una secuencia codificada u omitir el terminador obligatorio. Utiliza el resultado documentado de la conversión y su comportamiento ante errores. Un destino de ocho bytes elimina el déficit indicado para B, pero la implementación todavía necesita entrada válida, aritmética comprobada y un destino vigente con permiso de escritura. Este cálculo demuestra únicamente la relación de tamaños indicada.

La distinción clave: El espacio depende de codificación y operación.

Compruébate

Sin reloj ni penalizaciones. Lee cada explicación y vuelve a intentarlo cuando quieras.

  1. ¿Qué conclusión se deduce del registro B y del contrato del adaptador?

    Ver la respuesta

    Respuesta correcta: Se necesitan ocho bytes; al destino actual le faltan dos. Siete bytes codificados más un terminador requieren ocho bytes. El destino de seis bytes no supera esta comprobación.

Pruébalo

  • EscribeEscribe la capacidad necesaria y el espacio que falta para B. Cambia el destino a ocho bytes y explica qué más debe comprobarse antes de aceptar la conversión.
Referencias