mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-03 08:56:13 +00:00
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]
This commit is contained in:
parent
4be019d553
commit
4460e7a4cf
@ -1,3 +1,14 @@
|
||||
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.
|
||||
|
||||
2005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
|
||||
|
||||
* rt_netlink.c: (netlink_socket,netlink_request,netlink_parse_info,
|
||||
|
@ -50,6 +50,7 @@ interface_list_ioctl (int af)
|
||||
struct lifconf lifconf;
|
||||
struct interface *ifp;
|
||||
int n;
|
||||
int save_errno;
|
||||
size_t needed, lastneeded = 0;
|
||||
char *buf = NULL;
|
||||
|
||||
@ -72,6 +73,7 @@ calculate_lifc_len: /* must hold privileges to enter here */
|
||||
lifn.lifn_family = af;
|
||||
lifn.lifn_flags = 0;
|
||||
ret = ioctl (sock, SIOCGLIFNUM, &lifn);
|
||||
save_errno = errno;
|
||||
|
||||
if (zserv_privs.change(ZPRIVS_LOWER))
|
||||
zlog (NULL, LOG_ERR, "Can't lower privileges");
|
||||
@ -79,7 +81,7 @@ calculate_lifc_len: /* must hold privileges to enter here */
|
||||
if (ret < 0)
|
||||
{
|
||||
zlog_warn ("interface_list_ioctl: SIOCGLIFNUM failed %s",
|
||||
safe_strerror (errno));
|
||||
safe_strerror (save_errno));
|
||||
close (sock);
|
||||
return -1;
|
||||
}
|
||||
|
@ -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)
|
||||
|
@ -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");
|
||||
@ -61,15 +61,12 @@ if_ioctl (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)
|
||||
@ -86,8 +83,8 @@ if_ioctl_ipv6 (u_long request, caddr_t buffer)
|
||||
{
|
||||
#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 @@ 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)
|
||||
|
@ -87,10 +87,12 @@ solaris_nd(const int cmd, const char* parameter, const int value)
|
||||
}
|
||||
if (ioctl (fd, I_STR, &strioctl) < 0)
|
||||
{
|
||||
int save_errno = errno;
|
||||
if ( zserv_privs.change (ZPRIVS_LOWER) )
|
||||
zlog_err ("solaris_nd: Can't lower privileges");
|
||||
close (fd);
|
||||
zlog_warn("ioctl I_STR failed on device %s - %s", device,safe_strerror(errno));
|
||||
zlog_warn("ioctl I_STR failed on device %s - %s",
|
||||
device, safe_strerror(save_errno));
|
||||
return -1;
|
||||
}
|
||||
close(fd);
|
||||
|
@ -101,19 +101,21 @@ int
|
||||
irdp_sock_init (void)
|
||||
{
|
||||
int ret, i;
|
||||
int save_errno;
|
||||
|
||||
if ( zserv_privs.change (ZPRIVS_RAISE) )
|
||||
zlog_err ("irdp_sock_init: could not raise privs, %s",
|
||||
safe_strerror (errno) );
|
||||
|
||||
irdp_sock = socket (AF_INET, SOCK_RAW, IPPROTO_ICMP);
|
||||
save_errno = errno;
|
||||
|
||||
if ( zserv_privs.change (ZPRIVS_LOWER) )
|
||||
zlog_err ("irdp_sock_init: could not lower privs, %s",
|
||||
safe_strerror (errno) );
|
||||
|
||||
if (irdp_sock < 0) {
|
||||
zlog_warn ("IRDP: can't create irdp socket %s", safe_strerror(errno));
|
||||
zlog_warn ("IRDP: can't create irdp socket %s", safe_strerror(save_errno));
|
||||
return irdp_sock;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user