diff options
| author | sin | 2015-03-03 16:59:33 +0000 |
|---|---|---|
| committer | sin | 2015-03-03 17:00:06 +0000 |
| commit | 1118911981c4ee56b90328c04dda14935b3d5525 (patch) | |
| tree | 68e8ddaef54d62cec8fd33091033df0d6628031b /include/stdio.h | |
| parent | 2ced6e28c30c98428a85a3c3fac7758d1ddf12b6 (diff) | |
Don't trap on error for vsprintf() and friends
Diffstat (limited to 'include/stdio.h')
| -rw-r--r-- | include/stdio.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/include/stdio.h b/include/stdio.h index 94025ef..83ddb88 100644 --- a/include/stdio.h +++ b/include/stdio.h | |||
| @@ -54,7 +54,7 @@ __fortify_vsprintf(char *s, const char *fmt, __builtin_va_list ap) | |||
| 54 | 54 | ||
| 55 | if (bos != -1) { | 55 | if (bos != -1) { |
| 56 | r = vsnprintf(s, bos, fmt, ap); | 56 | r = vsnprintf(s, bos, fmt, ap); |
| 57 | if (r == -1 || (size_t)r >= bos) | 57 | if (r != -1 && (size_t)r >= bos) |
| 58 | __builtin_trap(); | 58 | __builtin_trap(); |
| 59 | } else { | 59 | } else { |
| 60 | r = vsprintf(s, fmt, ap); | 60 | r = vsprintf(s, fmt, ap); |
| @@ -102,7 +102,7 @@ __fortify_vsnprintf(char *s, size_t n, const char *fmt, __builtin_va_list ap) | |||
| 102 | int r; \ | 102 | int r; \ |
| 103 | if (bos != -1) { \ | 103 | if (bos != -1) { \ |
| 104 | r = (snprintf)(s, bos, fmt, ## __VA_ARGS__); \ | 104 | r = (snprintf)(s, bos, fmt, ## __VA_ARGS__); \ |
| 105 | if (r == -1 || (size_t)r >= bos) \ | 105 | if (r != -1 && (size_t)r >= bos) \ |
| 106 | __builtin_trap(); \ | 106 | __builtin_trap(); \ |
| 107 | } else { \ | 107 | } else { \ |
| 108 | r = (sprintf)(s, fmt, ## __VA_ARGS__); \ | 108 | r = (sprintf)(s, fmt, ## __VA_ARGS__); \ |
