Hacker News new | past | comments | ask | show | jobs | submit login

> A good example is format strings in C

The D programming language allows direct use of C printf. However, D checks the arguments against the format specifiers in the format string to make it memory safe.

The constant stream of bugs due to format/arguments is now history.

There is no reason why C and C++ compilers cannot do this, too.




for static specifiers, I can see that. but for dynamically constructed format specifiers, especially where arrays to pointers/vargs are in use, is it possible to have a mitigation for that?

this pseudo-code as an example:

snprintf(fmt,userinputstring,args); printf(fmt,somearray);


Your suspicion is correct, the checks only work when the format string is a literal.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: