diff options
author | harti <harti@FreeBSD.org> | 2003-07-29 13:37:04 +0000 |
---|---|---|
committer | harti <harti@FreeBSD.org> | 2003-07-29 13:37:04 +0000 |
commit | b2770235d4db105b05270cb78d8388c246b186c6 (patch) | |
tree | 5aa62d8546535d9ffa30e70e5c339fedc1960881 /sbin/atm/atm/atm_set.c | |
parent | 651b54f4726197de352365675e3c76551409d5d3 (diff) | |
download | FreeBSD-src-b2770235d4db105b05270cb78d8388c246b186c6.zip FreeBSD-src-b2770235d4db105b05270cb78d8388c246b186c6.tar.gz |
Use size_t for buffer sizes. Improve error handling in some places.
Remove a __DECONST() that was needed before this interface cleanup.
Diffstat (limited to 'sbin/atm/atm/atm_set.c')
-rw-r--r-- | sbin/atm/atm/atm_set.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/sbin/atm/atm/atm_set.c b/sbin/atm/atm/atm_set.c index 08e8b7a..dc87df9 100644 --- a/sbin/atm/atm/atm_set.c +++ b/sbin/atm/atm/atm_set.c @@ -79,7 +79,10 @@ __RCSID("@(#) $FreeBSD$"); void set_arpserver(int argc, char **argv, const struct cmd *cmdp __unused) { - int i, len, prefix_len = 0, rc, s; + int rc, s; + u_int i; + ssize_t len; + size_t prefix_len = 0; char *intf; Atm_addr server; struct sockaddr_in *lis; @@ -138,12 +141,11 @@ set_arpserver(int argc, char **argv, const struct cmd *cmdp __unused) * with the network interface and insert them into the * list of permitted LIS prefixes. */ - len = sizeof(struct air_netif_rsp); bzero(&air, sizeof(air)); air.air_opcode = AIOCS_INF_NIF; strcpy(air.air_int_intf, intf); - len = do_info_ioctl(&air, len); - if (len < 0) { + len = do_info_ioctl(&air, sizeof(struct air_netif_rsp)); + if (len == -1) { fprintf(stderr, "%s: ", prog); switch (errno) { case ENOPROTOOPT: @@ -371,7 +373,8 @@ set_netif(int argc, char **argv, const struct cmd *cmdp __unused) struct atmsetreq anr; char str[16]; char *cp; - int nifs, s; + int s; + u_long nifs; /* * Set IOCTL opcode @@ -402,8 +405,9 @@ set_netif(int argc, char **argv, const struct cmd *cmdp __unused) /* * Validate interface count */ - nifs = (int) strtol(argv[0], &cp, 0); - if ((*cp != '\0') || (nifs < 0) || (nifs > MAX_NIFS)) { + errno = 0; + nifs = strtoul(argv[0], &cp, 0); + if (errno != 0 || *cp != '\0' || nifs > MAX_NIFS) { fprintf(stderr, "%s: Invalid interface count\n", prog); exit(1); } @@ -412,7 +416,7 @@ set_netif(int argc, char **argv, const struct cmd *cmdp __unused) /* * Make sure the resulting name won't be too long */ - sprintf(str, "%d", nifs - 1); + sprintf(str, "%lu", nifs - 1); if ((strlen(str) + strlen(anr.asr_nif_pref)) > sizeof(anr.asr_nif_intf) - 1) { fprintf(stderr, "%s: Network interface prefix too long\n", prog); |