[PATCH/RFC V2 09/26] library: Check for failed allocations in openconnect_vpninfo_new()
Kevin Cernekee
cernekee at gmail.com
Sun Aug 11 21:49:10 EDT 2013
This is probably fatal anyway, but it is better to fail in a predictable
manner.
Signed-off-by: Kevin Cernekee <cernekee at gmail.com>
---
library.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/library.c b/library.c
index c0ec763..726e4dd 100644
--- a/library.c
+++ b/library.c
@@ -50,6 +50,9 @@ struct openconnect_info *openconnect_vpninfo_new(char *useragent,
{
struct openconnect_info *vpninfo = calloc(sizeof(*vpninfo), 1);
+ if (!vpninfo)
+ return NULL;
+
vpninfo->tun_fd = vpninfo->ssl_fd = vpninfo->dtls_fd = vpninfo->new_dtls_fd = -1;
vpninfo->cancel_fd = vpninfo->cancel_fd_write = -1;
vpninfo->cert_expire_warning = 60 * 86400;
@@ -68,6 +71,13 @@ struct openconnect_info *openconnect_vpninfo_new(char *useragent,
vpninfo->xmlpost = 1;
openconnect_set_reported_os(vpninfo, NULL);
+ if (!vpninfo->localname || !vpninfo->useragent) {
+ free(vpninfo->localname);
+ free(vpninfo->useragent);
+ free(vpninfo);
+ return NULL;
+ }
+
#ifdef ENABLE_NLS
bindtextdomain("openconnect", LOCALEDIR);
#endif
--
1.7.9.5
More information about the openconnect-devel
mailing list