Limit RESOLUTION_MAX to INT_MAX, not UINT_MAX (all spelled out) so the

mode value isn't always clipped to -1 when (resolution * size) == 32, which
would have been the case with values => {4i,32b,32t}.

This seems to have been broken in r64382.

MFC after: 1 week
X-MFC with: r289915
PR: 200619
Reported by: Michael Baptist
Submitted by: Lars Skodje
Sponsored by: EMC / Isilon Storage Division
This commit is contained in:
Enji Cooper 2015-10-25 04:37:00 +00:00
parent d53226d715
commit ea36ade1d1
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=289916

View File

@ -246,7 +246,7 @@ editentry_set(char *name, char *newvalue, int editonly)
* currently workaround it (even for int64's), so we have to kludge it.
*/
#define RESOLUTION_MAX(size) ((resolution * (size) == 32)? \
(int)0xffffffff: (1 << (resolution * (size))) - 1)
INT_MAX: (1 << (resolution * (size))) - 1)
assert(newvalue != NULL);
if (*newvalue == '\0')