mirror of
https://git.musl-libc.org/git/musl
synced 2025-02-21 04:34:18 +03:00
remove INT_MAX limit on the n argument to snprintf/swprintf
this was a POSIX requirement that was always in conflict with ISO C, which specified a well-defined behavior for snprintf and swprintf so long as the actual number of bytes/characters produced did not exceed INT_MAX. I originally raised this conflict for snprintf with the Austin Group as tracker issue 761, which was never resolved. it was later reported again as issue 1219, and as a result the conflicting requirement has been removed. the corresponding issue with swprintf does not seem to have been addressed, but as the same reasoning applies to it, I am removing the limitation on n for swprintf as well.
This commit is contained in:
parent
f47a5d400b
commit
11fb383275
@ -45,11 +45,6 @@ int vsnprintf(char *restrict s, size_t n, const char *restrict fmt, va_list ap)
|
||||
.cookie = &c,
|
||||
};
|
||||
|
||||
if (n > INT_MAX) {
|
||||
errno = EOVERFLOW;
|
||||
return -1;
|
||||
}
|
||||
|
||||
*c.s = 0;
|
||||
return vfprintf(&f, fmt, ap);
|
||||
}
|
||||
|
@ -51,9 +51,6 @@ int vswprintf(wchar_t *restrict s, size_t n, const wchar_t *restrict fmt, va_lis
|
||||
|
||||
if (!n) {
|
||||
return -1;
|
||||
} else if (n > INT_MAX) {
|
||||
errno = EOVERFLOW;
|
||||
return -1;
|
||||
}
|
||||
r = vfwprintf(&f, fmt, ap);
|
||||
sw_write(&f, 0, 0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user