summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsin2015-03-03 16:59:33 +0000
committersin2015-03-03 17:00:06 +0000
commit1118911981c4ee56b90328c04dda14935b3d5525 (patch)
tree68e8ddaef54d62cec8fd33091033df0d6628031b
parent2ced6e28c30c98428a85a3c3fac7758d1ddf12b6 (diff)
Don't trap on error for vsprintf() and friends
-rw-r--r--include/stdio.h4
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__); \