[PATCH] kexec: socket not released when error situation occur.
YoungHyun Yoo
yooyoo.yoo at samsung.com
Fri Aug 26 01:13:03 PDT 2016
On 08/26/16 at 11:19 am, Baoquan He wrote:
>On 08/25/16 at 11:15am, YoungHyun Yoo wrote:
>> Fix resourceleek in ifdown function when error occur.
>
>resource leak?
Yes resource leak. Sorry for the typo.
>
>>
>> Signed-off-by: YoungHyun Yoo <yooyoo.yoo at samsung.com>
>> ---
>> kexec/ifdown.c | 26 +++++++++++++++-----------
>> 1 file changed, 15 insertions(+), 11 deletions(-)
>>
>> diff --git a/kexec/ifdown.c b/kexec/ifdown.c
>> index 46b7bef..9679ad7 100644
>> --- a/kexec/ifdown.c
>> +++ b/kexec/ifdown.c
>> @@ -1,6 +1,6 @@
>> /*
>> - * ifdown.c Find all network interfaces on the system and
>> - * shut them down.
>> + * ifdown.c Find all network interfaces on the system and
>> + * shut them down.
>> *
>> */
>> char *v_ifdown = "@(#)ifdown.c 1.11 02-Jun-1998 miquels at cistron.nl";
>> @@ -20,10 +20,10 @@ char *v_ifdown = "@(#)ifdown.c 1.11 02-Jun-1998 miquels at cistron.nl";
>> #include <netinet/in.h>
>>
>> /*
>> - * First, we find all shaper devices and down them. Then we
>> - * down all real interfaces. This is because the comment in the
>> - * shaper driver says "if you down the shaper device before the
>> - * attached inerface your computer will follow".
>> + * First, we find all shaper devices and down them. Then we
>> + * down all real interfaces. This is because the comment in the
>> + * shaper driver says "if you down the shaper device before the
>> + * attached inerface your computer will follow".
>> */
>> int ifdown(void)
>> {
>> @@ -34,13 +34,13 @@ int ifdown(void)
>> if ((fd = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
>> fprintf(stderr, "ifdown: ");
>> perror("socket");
>> - return -1;
>> + goto error;
>> }
>>
>> if ((ifa = if_nameindex()) == NULL) {
>> fprintf(stderr, "ifdown: ");
>> perror("if_nameindex");
>> - return -1;
>> + goto error;
>> }
>>
>> for (shaper = 1; shaper >= 0; shaper--) {
>> @@ -57,18 +57,22 @@ int ifdown(void)
>> if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
>> fprintf(stderr, "ifdown: shutdown ");
>> perror(ifp->if_name);
>> - return -1;
>> + goto error;
>> }
>> ifr.ifr_flags &= ~(IFF_UP);
>> if (ioctl(fd, SIOCSIFFLAGS, &ifr) < 0) {
>> fprintf(stderr, "ifdown: shutdown ");
>> perror(ifp->if_name);
>> - return -1;
>> + goto error;
>> }
>>
>> }
>> }
>> - close(fd);
>>
>> + close(fd);
>> return 0;
>> +
>> +error:
>> + close(fd);
>> + return -1;
>> }
>> --
>> 2.9.0.GIT
>>
>>
_______________________________________________
kexec mailing list
kexec at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
More information about the kexec
mailing list