Re:OpenBSD, C, httpd and SQLite – Web App stack
by tedunangst on Saturday June 09, 2018 @07:01AM
(#17272434)
It's pretty hard to get strdup wrong.
[ Parent
| on HN ]
Re:OpenBSD, C, httpd and SQLite – Web App stack
by sunfish on Saturday June 09, 2018 @07:24AM
(#17272491)
Re:OpenBSD, C, httpd and SQLite – Web App stack
by tedunangst on Saturday June 09, 2018 @08:32AM
(#17272704)
This is true. Although they did say "copy a string", not use strdup to copy a thing that is not a string. :)
Re:OpenBSD, C, httpd and SQLite – Web App stack
by sunfish on Saturday June 09, 2018 @10:28AM
(#17273182)
Yes, that's one of the three CVE's I posted ;).
You got me thinking about ways one could get strdup wrong:
- input is not a string -> possible UB
- input is a string, but the character encoding wasn't what you thought -> possible UB
- input is a string, but it was the pointer-plus-length kind -> possible UB
- input is modified by another thread -> possible UB
- strdup called from within a signal handler -> possible UB
- failure to handle error return values -> possible UB
- failure to free the memory when it's no longer needed -> memory leak
- freed the memory more than once -> possible UB
- used the memory after freeing it -> possible UB
I've personally seen several of these in real-world code.