Skip to contentSkip to conversation

superfluous CAP_NET_ADMIN required for some ioctl

PATCH New Laurent Deniel 1 participant 1 message Feb 1, 2005

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 superfluous CAP_NET_ADMIN required for some ioctl

Hi,

It should be possible to obtain bonding information with SIOCBOND[SLAVE]INFOQUERY ioctls without root privilege (like with /proc/net/bonding/bond? or ifconfig).

Laurent

net/core/dev.c 2005-01-08 18:00:01.000000000 +0100 renamed from net/core/dev.c 2005-01-08 17:29:55.000000000 +0100 +14 -2
@@ -2692,8 +2692,6 @@ int dev_ioctl(unsigned int cmd, void __u
                case SIOCBONDENSLAVE:
                case SIOCBONDRELEASE:
                case SIOCBONDSETHWADDR:
-               case SIOCBONDSLAVEINFOQUERY:
-               case SIOCBONDINFOQUERY:
                case SIOCBONDCHANGEACTIVE:
                case SIOCBRADDIF:
                case SIOCBRDELIF:
@@ -2705,6 +2703,20 @@ int dev_ioctl(unsigned int cmd, void __u
                        rtnl_unlock();
                        return ret;
 
+               /*
+                *      These ioctl calls:
+                *      - can be done by all.
+                *      - require strict serialization.
+                *      - return a value (but already copied to user)
+                */
+               case SIOCBONDSLAVEINFOQUERY:
+               case SIOCBONDINFOQUERY:
+                       dev_load(ifr.ifr_name);
+                       rtnl_lock();
+                       ret = dev_ifsioc(&ifr, cmd);
+                       rtnl_unlock();
+                       return ret;
+
                case SIOCGIFMEM:
                        /* Get the per device memory space. We can add this but
                         * currently do not support it */