summaryrefslogtreecommitdiff
path: root/cleopatre/application/libspid
diff options
context:
space:
mode:
authorWentao Hu2013-03-12 09:26:48 +0800
committerWentao Hu2013-03-22 16:05:04 +0800
commitb36bb06c43579ac9e8c3cca8abbdbe197a1de6cd (patch)
tree841f8dac4126e10bf3687259e93ab8a60a58a686 /cleopatre/application/libspid
parent37bcb643bc32aafe108514277144f23b5fc2b1a4 (diff)
cleo/app/libspid: close files before functions error return, closes #3852
Diffstat (limited to 'cleopatre/application/libspid')
-rw-r--r--cleopatre/application/libspid/src/network.c1
-rw-r--r--cleopatre/application/libspid/src/system.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/cleopatre/application/libspid/src/network.c b/cleopatre/application/libspid/src/network.c
index 62aef2145c..e2ac05e53a 100644
--- a/cleopatre/application/libspid/src/network.c
+++ b/cleopatre/application/libspid/src/network.c
@@ -313,6 +313,7 @@ libspid_error_t libspid_network_get_mac (const char *interface, unsigned char *m
strcpy(ifr.ifr_name, interface);
if ( ioctl(s, SIOCGIFHWADDR, &ifr) != 0 )
{
+ close (s);
return LIBSPID_ERROR_SYSTEM;
}
memcpy(ea.ether_addr_octet, ifr.ifr_hwaddr.sa_data, ETHER_ADDR_LEN);
diff --git a/cleopatre/application/libspid/src/system.c b/cleopatre/application/libspid/src/system.c
index 2020a052c2..b7437742a7 100644
--- a/cleopatre/application/libspid/src/system.c
+++ b/cleopatre/application/libspid/src/system.c
@@ -168,7 +168,10 @@ libspid_error_t libspid_system_get_kernel_version(char *buffer, int buffer_len)
len = strlen(line_buffer);
total += len;
if (total > (unsigned int)buffer_len)
+ {
+ fclose (fp);
return LIBSPID_ERROR_NO_SPACE;
+ }
strcat(buffer, line_buffer);
}
@@ -305,7 +308,10 @@ libspid_error_t libspid_system_get_meminfo(char *buffer, int buffer_len)
len = strlen(line_buffer);
total += len;
if (total > (unsigned int)buffer_len)
+ {
+ fclose (fp);
return LIBSPID_ERROR_NO_SPACE;
+ }
strcat(buffer, line_buffer);
}