Messages in this thread | | | Date | Thu, 7 May 2015 11:10:55 -0400 | From | Chris Metcalf <> | Subject | Re: [PATCH 2/3] string: provide strscpy() and strscpy_truncate() |
| |
On 05/07/2015 05:00 AM, Dan Carpenter wrote: > On Wed, May 06, 2015 at 06:45:56PM +0200, Geert Uytterhoeven wrote: >> On Wed, May 6, 2015 at 5:59 PM, Dan Carpenter <dan.carpenter@oracle.com> wrote: >>> We actually do have a __must_check tag so it's easy enough to force >>> people to check. A different option is we could make it trigger a >> People tend to ignore compiler warnings... > We're doing a lot better these days with zero day build testing. There > is not even one ignored __must_check return in my allmodconfig.
If we keep the strscpy/strscpy_truncate distinction, I agree that having __must_check on strscpy seems like a good idea.
>>> WARN_ONCE(). >>> >>> #define strXcpy(dest, src, len) (({ \ >>> ssize_t __ret = strscpy_truncate(dest, src, len); \ >>> WARN_ONCE(__ret < 0, "strXcpy trancates\n"); \ >>> __ret; })) >> Which will probably trigger only in extreme cases in the wild, not during >> development. > It's less subtle than just putting an empty string there so we're more > likely to get bug reports than with the original code.
The problem with WARN_ONCE() here is that we may be using strscpy() to take user input of some kind. If so, we don't want to warn if we are truncating the string - we just want to return a suitable error up the call stack.
-- Chris Metcalf, EZChip Semiconductor http://www.ezchip.com
| |