Plug memory leaks.
Found with: valgrind MFC after: 3 days
This commit is contained in:
parent
2964aeb34a
commit
584a9bc3f8
@ -264,6 +264,7 @@ control_statement: CONTROL STR
|
||||
sizeof(depth0_control)) >=
|
||||
sizeof(depth0_control)) {
|
||||
pjdlog_error("control argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
@ -274,12 +275,14 @@ control_statement: CONTROL STR
|
||||
sizeof(lconfig->hc_controladdr)) >=
|
||||
sizeof(lconfig->hc_controladdr)) {
|
||||
pjdlog_error("control argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(!"control at wrong depth level");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
||||
@ -291,6 +294,7 @@ listen_statement: LISTEN STR
|
||||
sizeof(depth0_listen)) >=
|
||||
sizeof(depth0_listen)) {
|
||||
pjdlog_error("listen argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
@ -301,12 +305,14 @@ listen_statement: LISTEN STR
|
||||
sizeof(lconfig->hc_listenaddr)) >=
|
||||
sizeof(lconfig->hc_listenaddr)) {
|
||||
pjdlog_error("listen argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(!"listen at wrong depth level");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
||||
@ -357,6 +363,7 @@ exec_statement: EXEC STR
|
||||
if (strlcpy(depth0_exec, $2, sizeof(depth0_exec)) >=
|
||||
sizeof(depth0_exec)) {
|
||||
pjdlog_error("Exec path is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
@ -367,12 +374,14 @@ exec_statement: EXEC STR
|
||||
sizeof(curres->hr_exec)) >=
|
||||
sizeof(curres->hr_exec)) {
|
||||
pjdlog_error("Exec path is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(!"exec at wrong depth level");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
||||
@ -386,6 +395,7 @@ node_start: STR
|
||||
{
|
||||
switch (isitme($1)) {
|
||||
case -1:
|
||||
free($1);
|
||||
return (1);
|
||||
case 0:
|
||||
break;
|
||||
@ -395,6 +405,7 @@ node_start: STR
|
||||
default:
|
||||
assert(!"invalid isitme() return value");
|
||||
}
|
||||
free($1);
|
||||
}
|
||||
;
|
||||
|
||||
@ -482,14 +493,17 @@ resource_start: STR
|
||||
curres = calloc(1, sizeof(*curres));
|
||||
if (curres == NULL) {
|
||||
pjdlog_error("Unable to allocate memory for resource.");
|
||||
free($1);
|
||||
return (1);
|
||||
}
|
||||
if (strlcpy(curres->hr_name, $1,
|
||||
sizeof(curres->hr_name)) >=
|
||||
sizeof(curres->hr_name)) {
|
||||
pjdlog_error("Resource name is too long.");
|
||||
free($1);
|
||||
return (1);
|
||||
}
|
||||
free($1);
|
||||
curres->hr_role = HAST_ROLE_INIT;
|
||||
curres->hr_previous_role = HAST_ROLE_INIT;
|
||||
curres->hr_replication = -1;
|
||||
@ -530,6 +544,7 @@ name_statement: NAME STR
|
||||
sizeof(depth1_provname)) >=
|
||||
sizeof(depth1_provname)) {
|
||||
pjdlog_error("name argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
@ -541,12 +556,14 @@ name_statement: NAME STR
|
||||
sizeof(curres->hr_provname)) >=
|
||||
sizeof(curres->hr_provname)) {
|
||||
pjdlog_error("name argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(!"name at wrong depth level");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
||||
@ -558,6 +575,7 @@ local_statement: LOCAL STR
|
||||
sizeof(depth1_localpath)) >=
|
||||
sizeof(depth1_localpath)) {
|
||||
pjdlog_error("local argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
@ -569,12 +587,14 @@ local_statement: LOCAL STR
|
||||
sizeof(curres->hr_localpath)) >=
|
||||
sizeof(curres->hr_localpath)) {
|
||||
pjdlog_error("local argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
assert(!"local at wrong depth level");
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
||||
@ -589,6 +609,7 @@ resource_node_start: STR
|
||||
if (curres != NULL) {
|
||||
switch (isitme($1)) {
|
||||
case -1:
|
||||
free($1);
|
||||
return (1);
|
||||
case 0:
|
||||
break;
|
||||
@ -599,6 +620,7 @@ resource_node_start: STR
|
||||
assert(!"invalid isitme() return value");
|
||||
}
|
||||
}
|
||||
free($1);
|
||||
}
|
||||
;
|
||||
|
||||
@ -624,8 +646,10 @@ remote_statement: REMOTE STR
|
||||
sizeof(curres->hr_remoteaddr)) >=
|
||||
sizeof(curres->hr_remoteaddr)) {
|
||||
pjdlog_error("remote argument is too long.");
|
||||
free($2);
|
||||
return (1);
|
||||
}
|
||||
}
|
||||
free($2);
|
||||
}
|
||||
;
|
||||
|
@ -646,6 +646,7 @@ init_remote(struct hast_resource *res, struct proto_conn **inp,
|
||||
*/
|
||||
(void)hast_activemap_flush(res);
|
||||
}
|
||||
nv_free(nvin);
|
||||
pjdlog_info("Connected to %s.", res->hr_remoteaddr);
|
||||
if (inp != NULL && outp != NULL) {
|
||||
*inp = in;
|
||||
|
@ -140,6 +140,8 @@ cv_init(pthread_cond_t *cv)
|
||||
assert(error == 0);
|
||||
error = pthread_cond_init(cv, &attr);
|
||||
assert(error == 0);
|
||||
error = pthread_condattr_destroy(&attr);
|
||||
assert(error == 0);
|
||||
}
|
||||
static __inline void
|
||||
cv_wait(pthread_cond_t *cv, pthread_mutex_t *lock)
|
||||
|
Loading…
Reference in New Issue
Block a user