diff --git a/src/cwc.c b/src/cwc.c index 0ace6ded..9e6c24ef 100644 --- a/src/cwc.c +++ b/src/cwc.c @@ -452,8 +452,10 @@ cwc_send_msg(cwc_t *cwc, const uint8_t *msg, size_t len, int sid, int enq) uint8_t *buf = cm->cm_data; int seq, n; - if(len + 12 > CWS_NETMSGSIZE) + if(len + 12 > CWS_NETMSGSIZE) { + free(cm); return -1; + } memset(buf, 0, 12); memcpy(buf + 12, msg, len); @@ -469,6 +471,7 @@ cwc_send_msg(cwc_t *cwc, const uint8_t *msg, size_t len, int sid, int enq) if((len = des_encrypt(buf, len, cwc)) < 0) { free(buf); + free(cm); return -1; } diff --git a/src/dvr/dvr_rec.c b/src/dvr/dvr_rec.c index 87c28ea7..cb4c9e40 100755 --- a/src/dvr/dvr_rec.c +++ b/src/dvr/dvr_rec.c @@ -226,8 +226,10 @@ pvr_generate_filename(dvr_entry_t *de) /* */ - if(makedirs(path) != 0) + if(makedirs(path) != 0) { + free(filename); return -1; + } /* Construct final name */