summaryrefslogtreecommitdiffstats
path: root/zebra/ioctl.c
diff options
context:
space:
mode:
authorajs <ajs>2005-01-29 17:07:40 +0000
committerajs <ajs>2005-01-29 17:07:40 +0000
commit4460e7a4cf3dadcd9f06e4b519ba7be2cc936c0a (patch)
tree5755c13aeffb151d56a886868e623d186ca9a0a0 /zebra/ioctl.c
parent4be019d5530e21c9e54e41e46a57ab071b9b11ae (diff)
downloadquagga-4460e7a4cf3dadcd9f06e4b519ba7be2cc936c0a.tar.bz2
quagga-4460e7a4cf3dadcd9f06e4b519ba7be2cc936c0a.tar.xz
2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
* if_ioctl_solaris.c: (interface_list_ioctl) Save errno before calling zserv_privs.change. * ioctl{,_solaris}.c: (if_ioctl,if_ioctl_ipv6) Save errno before calling zserv_privs.change. * ipforward_solaris.c: (solaris_nd) Save errno before calling zserv_privs.change. * irdp_main.c: (irdp_sock_init) Save errno before calling zserv_privs.change. [backport candidate]
Diffstat (limited to 'zebra/ioctl.c')
-rw-r--r--zebra/ioctl.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/zebra/ioctl.c b/zebra/ioctl.c
index eca0e769..e28d359e 100644
--- a/zebra/ioctl.c
+++ b/zebra/ioctl.c
@@ -46,8 +46,8 @@ int
if_ioctl (u_long request, caddr_t buffer)
{
int sock;
- int ret = 0;
- int err = 0;
+ int ret;
+ int err;
if (zserv_privs.change(ZPRIVS_RAISE))
zlog (NULL, LOG_ERR, "Can't raise privileges");
@@ -59,13 +59,10 @@ if_ioctl (u_long request, caddr_t buffer)
perror ("socket");
exit (1);
}
- ret = ioctl (sock, request, buffer);
+ if ((ret = ioctl (sock, request, buffer)) < 0)
+ err = errno;
if (zserv_privs.change(ZPRIVS_LOWER))
zlog (NULL, LOG_ERR, "Can't lower privileges");
- if (ret < 0)
- {
- err = errno;
- }
close (sock);
if (ret < 0)
@@ -81,8 +78,8 @@ int
if_ioctl_ipv6 (u_long request, caddr_t buffer)
{
int sock;
- int ret = 0;
- int err = 0;
+ int ret;
+ int err;
if (zserv_privs.change(ZPRIVS_RAISE))
zlog (NULL, LOG_ERR, "Can't raise privileges");
@@ -95,14 +92,10 @@ if_ioctl_ipv6 (u_long request, caddr_t buffer)
exit (1);
}
- ret = ioctl (sock, request, buffer);
+ if ((ret = ioctl (sock, request, buffer)) < 0)
+ err = errno;
if (zserv_privs.change(ZPRIVS_LOWER))
zlog (NULL, LOG_ERR, "Can't lower privileges");
-
- if (ret < 0)
- {
- err = errno;
- }
close (sock);
if (ret < 0)