David Ahern wrote:
> On 1/31/18 10:21 AM, Serhey Popovych wrote:
>> Eric Dumazet wrote:
>>> ip tuntap enumerates devices using /sys/class/net which is unusual.
>>>
>>> Should we replace this enumeration using /proc/net/dev like "ip tunnel" ?
>>>
>>> After "unshare -n" maybe mounting /sys should not be required for
>>> proper iproute2 behavior.
>>>
>>> At least ip command should adopt a common enumeration method.
>>>
>>> What do you think ?
>>
>> It seems main reason for using /sys/class/net is to get additional
>> information for netdev like "owner", "group" and "tun_flags".
>>
>> On the other hand at least iptunnel and ip6tunnel uses nearly identical
>> code to parse /proc/net/dev.
>>
>> Having single routine that reads /proc/net/dev and calls implementation
>> specific callback function with given network device name is good idea.
>>
>> I can try to prepare v1 for this, if no one objects this.
>>
> 
> pid_name function needs help too. comm is allocated via sprintf, freed,
> and used again and then returned to caller.
> 

Sorry David, but I do no see problem with this function right now:

  1. It allocates string using malloc() in asprintf()
  2. free() it *after* fopen() to prevent memory leak if fopen() fails
  3. or if fopen() succeeded and we fscanf() with %ms that will allcate
     buffer we return.

I agree this is GNU extensions, but it does not look as user after free
to me. Should I get rid of these extensions? They are not last as I can
find.

Correct if I miss something.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to