The limit, since it's an unsigned int, should have been UINT_MAX, not
INT_MAX. By calling a2ui() we can fix that and simplify too.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
* values are handled.
*/
-unsigned int getdef_unum (const char *item, unsigned int dflt)
+unsigned int
+getdef_unum(const char *item, unsigned int dflt)
{
- struct itemdef *d;
- long val;
+ unsigned int val;
+ struct itemdef *d;
if (!def_loaded) {
def_load ();
return dflt;
}
- if ( (str2sl(&val, d->value) == -1)
- || (val < 0)
- || (val > INT_MAX)) {
+ if (a2ui(&val, d->value, NULL, 0, 0, UINT_MAX) == -1) {
fprintf (shadow_logfd,
_("configuration error - cannot parse %s value: '%s'"),
item, d->value);