=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/ssh/sftp.c,v retrieving revision 1.201 retrieving revision 1.202 diff -u -r1.201 -r1.202 --- src/usr.bin/ssh/sftp.c 2020/08/03 02:43:41 1.201 +++ src/usr.bin/ssh/sftp.c 2020/10/04 03:04:02 1.202 @@ -1,4 +1,4 @@ -/* $OpenBSD: sftp.c,v 1.201 2020/08/03 02:43:41 djm Exp $ */ +/* $OpenBSD: sftp.c,v 1.202 2020/10/04 03:04:02 dtucker Exp $ */ /* * Copyright (c) 2001-2004 Damien Miller * @@ -1302,7 +1302,7 @@ const char *cmd, *cp = *cpp; char *cp2, **argv; int base = 0; - long l; + long long ll; int path1_mandatory = 0, i, cmdnum, optidx, argc; /* Skip leading whitespace */ @@ -1460,16 +1460,16 @@ if (argc - optidx < 1) goto need_num_arg; errno = 0; - l = strtol(argv[optidx], &cp2, base); + ll = strtoll(argv[optidx], &cp2, base); if (cp2 == argv[optidx] || *cp2 != '\0' || - ((l == LONG_MIN || l == LONG_MAX) && errno == ERANGE) || - l < 0) { + ((ll == LLONG_MIN || ll == LLONG_MAX) && errno == ERANGE) || + ll < 0 || ll > UINT32_MAX) { need_num_arg: error("You must supply a numeric argument " "to the %s command.", cmd); return -1; } - *n_arg = l; + *n_arg = ll; if (cmdnum == I_LUMASK) break; /* Get pathname (mandatory) */