summaryrefslogtreecommitdiffstats
path: root/sbin/atm/atm/atm_set.c
diff options
context:
space:
mode:
authorharti <harti@FreeBSD.org>2003-07-29 13:37:04 +0000
committerharti <harti@FreeBSD.org>2003-07-29 13:37:04 +0000
commitb2770235d4db105b05270cb78d8388c246b186c6 (patch)
tree5aa62d8546535d9ffa30e70e5c339fedc1960881 /sbin/atm/atm/atm_set.c
parent651b54f4726197de352365675e3c76551409d5d3 (diff)
downloadFreeBSD-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.c20
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);
OpenPOWER on IntegriCloud