Commit Diff


commit - c7c8ef448bc8832998606ec217907c7dc66fec6c
commit + 3c4b712bb2ef520be964da95fd627060f6639bf8
blob - 6359227df8680bb34dbb84cb46eab049ebf2b502
blob + 14af60db6c5ae9dac706d9a9e20b9a54b3d4df85
--- parse.y
+++ parse.y
@@ -209,6 +209,7 @@ option		: CHROOT string	{ conf.chroot = $2; }
 		| PROTOCOLS string {
 			if (tls_config_parse_protocols(&conf.protos, $2) == -1)
 				yyerror("invalid protocols string \"%s\"", $2);
+			free($2);
 		}
 		| USER string		{ conf.user = $2; }
 		;
@@ -299,6 +300,7 @@ proxy_opt	: CERT string {
 			p->cert = tls_load_file($2, &p->certlen, NULL);
 			if (p->cert == NULL)
 				yyerror("can't load cert %s", $2);
+			free($2);
 		}
 		| KEY string {
 			struct proxy *p = &host->proxy;
@@ -308,12 +310,14 @@ proxy_opt	: CERT string {
 			p->key = tls_load_file($2, &p->keylen, NULL);
 			if (p->key == NULL)
 				yyerror("can't load key %s", $2);
+			free($2);
 		}
 		| PROTOCOLS string {
 			struct proxy *p = &host->proxy;
 
 			if (tls_config_parse_protocols(&p->protocols, $2) == -1)
 				yyerror("invalid protocols string \"%s\"", $2);
+			free($2);
 		}
 		| RELAY_TO string {
 			char		*at;