pro - ¿Existe una función de C como sprintf en el kernel de Linux?
sprintf signed int (4)
¿Existe una función como sprintf()
en el kernel de Linux (como printf()
-> printk()
)?
Ejecutar crash en un kernel 2.6 en vivo confirma que sprintf () está definido, y donde está definido.
crash> sym sprintf
ffffffff81267ba0 (T) sprintf ../debug/kernel-2.6.39/linux-2.6.39-400.210.2.el6uek/lib/vsprintf.c: 1442
Sí, solo incluye linux / kernel.h
sí hay salida here por ejemplo
Puedes usar grep para ver si está en el código fuente del kernel
sí. https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/lib/vsprintf.c#n1828
int snprintf(char *buf, size_t size, const char *fmt, ...)
{
va_list args;
int i;
va_start(args, fmt);
i = vsnprintf(buf, size, fmt, args);
va_end(args);
return i;
}
EXPORT_SYMBOL(snprintf);
sprintf()
por sí mismo es propenso a los desbordamientos de búfer. CERT desbordamientos de búfer , Apple , etc.