Revision 70b4f4bb cutils.c

b/cutils.c
291 291
 * value must be terminated by whitespace, ',' or '\0'. Return -1 on
292 292
 * error.
293 293
 */
294
ssize_t strtosz_suffix(const char *nptr, char **end, const char default_suffix)
294
int64_t strtosz_suffix(const char *nptr, char **end, const char default_suffix)
295 295
{
296
    ssize_t retval = -1;
296
    int64_t retval = -1;
297 297
    char *endptr, c, d;
298 298
    int mul_required = 0;
299 299
    double val, mul, integral, fraction;
......
365 365
            goto fail;
366 366
        }
367 367
    }
368
    if ((val * mul >= ~(size_t)0) || val < 0) {
368
    if ((val * mul >= INT64_MAX) || val < 0) {
369 369
        goto fail;
370 370
    }
371 371
    retval = val * mul;
......
378 378
    return retval;
379 379
}
380 380

  
381
ssize_t strtosz(const char *nptr, char **end)
381
int64_t strtosz(const char *nptr, char **end)
382 382
{
383 383
    return strtosz_suffix(nptr, end, STRTOSZ_DEFSUFFIX_MB);
384 384
}

Also available in: Unified diff