summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authortdeval <tdeval@openbsd.org>2004-03-02 21:01:00 +0000
committertdeval <tdeval@openbsd.org>2004-03-02 21:01:00 +0000
commitf203f33c65f9ef1b8da077f5ed2a4eb9f9f83e39 (patch)
tree4c06a3105ddf2c1066303abe0e35aade3d4c57cb
parentpretty usage and sort options. started by Andrey Matveev (diff)
downloadwireguard-openbsd-f203f33c65f9ef1b8da077f5ed2a4eb9f9f83e39.tar.xz
wireguard-openbsd-f203f33c65f9ef1b8da077f5ed2a4eb9f9f83e39.zip
64-bits datatype fixes for strto(u)l conversions.
From Daniel Lucq, through and OK by henning@
-rw-r--r--sbin/brconfig/brconfig.c48
1 files changed, 25 insertions, 23 deletions
diff --git a/sbin/brconfig/brconfig.c b/sbin/brconfig/brconfig.c
index a50de1adbf0..d259d1e6c2d 100644
--- a/sbin/brconfig/brconfig.c
+++ b/sbin/brconfig/brconfig.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: brconfig.c,v 1.28 2004/01/01 00:02:06 deraadt Exp $ */
+/* $OpenBSD: brconfig.c,v 1.29 2004/03/02 21:01:00 tdeval Exp $ */
/*
* Copyright (c) 1999, 2000 Jason L. Wright (jason@thought.net)
@@ -743,13 +743,14 @@ int
bridge_timeout(int s, char *brdg, char *arg)
{
struct ifbrparam bp;
- int newtime;
+ long newtime;
char *endptr;
errno = 0;
newtime = strtol(arg, &endptr, 0);
- if (arg[0] == '\0' || endptr[0] != '\0' || newtime < 0 ||
- (errno == ERANGE && newtime == ULONG_MAX)) {
+ if (arg[0] == '\0' || endptr[0] != '\0' ||
+ (newtime & ~INT_MAX) != 0L ||
+ (errno == ERANGE && newtime == LONG_MAX)) {
printf("invalid arg for timeout: %s\n", arg);
return (EX_USAGE);
}
@@ -767,13 +768,13 @@ int
bridge_maxage(int s, char *brdg, char *arg)
{
struct ifbrparam bp;
- u_int32_t v;
+ unsigned long v;
char *endptr;
errno = 0;
v = strtoul(arg, &endptr, 0);
- if (arg[0] == '\0' || endptr[0] != '\0' ||
- (errno == ERANGE && v == ULONG_MAX) || (v > 0xff)) {
+ if (arg[0] == '\0' || endptr[0] != '\0' || v > 0xffUL ||
+ (errno == ERANGE && v == ULONG_MAX)) {
printf("invalid arg for maxage: %s\n", arg);
return (EX_USAGE);
}
@@ -791,13 +792,13 @@ int
bridge_priority(int s, char *brdg, char *arg)
{
struct ifbrparam bp;
- u_int32_t v;
+ unsigned long v;
char *endptr;
errno = 0;
v = strtoul(arg, &endptr, 0);
- if (arg[0] == '\0' || endptr[0] != '\0' ||
- (errno == ERANGE && v == ULONG_MAX) || (v > 0xffff)) {
+ if (arg[0] == '\0' || endptr[0] != '\0' || v > 0xffffUL ||
+ (errno == ERANGE && v == ULONG_MAX)) {
printf("invalid arg for maxage: %s\n", arg);
return (EX_USAGE);
}
@@ -815,13 +816,13 @@ int
bridge_fwddelay(int s, char *brdg, char *arg)
{
struct ifbrparam bp;
- u_int32_t v;
+ unsigned long v;
char *endptr;
errno = 0;
v = strtoul(arg, &endptr, 0);
- if (arg[0] == '\0' || endptr[0] != '\0' ||
- (errno == ERANGE && v == ULONG_MAX) || (v > 0xff)) {
+ if (arg[0] == '\0' || endptr[0] != '\0' || v > 0xffUL ||
+ (errno == ERANGE && v == ULONG_MAX)) {
printf("invalid arg for fwddelay: %s\n", arg);
return (EX_USAGE);
}
@@ -839,13 +840,13 @@ int
bridge_hellotime(int s, char *brdg, char *arg)
{
struct ifbrparam bp;
- u_int32_t v;
+ unsigned long v;
char *endptr;
errno = 0;
v = strtoul(arg, &endptr, 0);
- if (arg[0] == '\0' || endptr[0] != '\0' ||
- (errno == ERANGE && v == ULONG_MAX) || (v > 0xff)) {
+ if (arg[0] == '\0' || endptr[0] != '\0' || v > 0xffUL ||
+ (errno == ERANGE && v == ULONG_MAX)) {
printf("invalid arg for hellotime: %s\n", arg);
return (EX_USAGE);
}
@@ -863,12 +864,12 @@ int
bridge_maxaddr(int s, char *brdg, char *arg)
{
struct ifbrparam bp;
- u_int32_t newsize;
+ unsigned long newsize;
char *endptr;
errno = 0;
newsize = strtoul(arg, &endptr, 0);
- if (arg[0] == '\0' || endptr[0] != '\0' ||
+ if (arg[0] == '\0' || endptr[0] != '\0' || newsize > 0xffffffffUL ||
(errno == ERANGE && newsize == ULONG_MAX)) {
printf("invalid arg for maxaddr: %s\n", arg);
return (EX_USAGE);
@@ -909,7 +910,7 @@ int
bridge_ifprio(int s, char *brdg, char *ifname, char *val)
{
struct ifbreq breq;
- u_int32_t v;
+ unsigned long v;
char *endptr;
strlcpy(breq.ifbr_name, brdg, sizeof(breq.ifbr_name));
@@ -917,8 +918,8 @@ bridge_ifprio(int s, char *brdg, char *ifname, char *val)
errno = 0;
v = strtoul(val, &endptr, 0);
- if (val[0] == '\0' || endptr[0] != '\0' ||
- (errno == ERANGE && v == ULONG_MAX) || (v > 0xff)) {
+ if (val[0] == '\0' || endptr[0] != '\0' || v > 0xffUL ||
+ (errno == ERANGE && v == ULONG_MAX)) {
printf("invalid arg for ifpriority: %s\n", val);
return (EX_USAGE);
}
@@ -935,7 +936,7 @@ int
bridge_ifcost(int s, char *brdg, char *ifname, char *val)
{
struct ifbreq breq;
- u_int32_t v;
+ unsigned long v;
char *endptr;
strlcpy(breq.ifbr_name, brdg, sizeof(breq.ifbr_name));
@@ -944,7 +945,8 @@ bridge_ifcost(int s, char *brdg, char *ifname, char *val)
errno = 0;
v = strtoul(val, &endptr, 0);
if (val[0] == '\0' || endptr[0] != '\0' ||
- (errno == ERANGE && v == ULONG_MAX) || (v < 1 || v > 0xffffffff)) {
+ v < 1 || v > 0xffffffffUL ||
+ (errno == ERANGE && v == ULONG_MAX)) {
printf("invalid arg for ifcost: %s\n", val);
return (EX_USAGE);
}