Existe-t-il une fonction comme sprintf()
dans le noyau Linux (comme printf()
-> printk()
)?
oui. 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()
par lui-même est sujet aux débordements de mémoire tampon. CERT débordement de mémoire tampon , Apple , etc.
Oui, incluez simplement linux/kernel.h
L'exécution d'un crash sur un noyau 2.6 en cours confirme que sprintf () est défini et à quel emplacement.
crash> sym sprintf
ffffffff81267ba0 (T) sprintf ../debug/kernel-2.6.39/linux-2.6.39-400.210.2.el6uek/lib/vsprintf.c: 1442
oui il y a check out ici par exemple
vous pouvez utiliser grep pour voir s'il est dans le code source du noyau