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]
diff --git a/zebra/ioctl_solaris.c b/zebra/ioctl_solaris.c
index 8ebd0f4..5ec327a 100644
--- a/zebra/ioctl_solaris.c
+++ b/zebra/ioctl_solaris.c
@@ -46,8 +46,8 @@
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");
@@ -61,15 +61,12 @@
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)
@@ -86,8 +83,8 @@
{
#ifdef HAVE_IPV6
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");
@@ -101,15 +98,12 @@
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)