Commit Diff


commit - f041f55f2723fb00e4c0350ce51b133a3387c9b5
commit + ffc797f3ccae553e547566756bbcf7570fc6f523
blob - bc3deeee5a66ff48fabca32c4fa4a63f30d4ba4d
blob + 9743ca772f1ce577167cf6a970fbf1273cfeda74
--- gotd/parse.y
+++ gotd/parse.y
@@ -252,6 +252,7 @@ protectflags	: TAG NAMESPACE STRING {
 					YYERROR;
 				}
 			}
+			free($3);
 		}
 		| BRANCH NAMESPACE STRING {
 			if (gotd_proc_id == PROC_GOTD ||
@@ -261,8 +262,8 @@ protectflags	: TAG NAMESPACE STRING {
 					free($3);
 					YYERROR;
 				}
-				free($3);
 			}
+			free($3);
 		}
 		| BRANCH STRING {
 			if (gotd_proc_id == PROC_GOTD ||
@@ -272,6 +273,7 @@ protectflags	: TAG NAMESPACE STRING {
 					YYERROR;
 				}
 			}
+			free($2);
 		}
 		;
 
@@ -318,20 +320,23 @@ repoopts1	: PATH STRING {
 			if (gotd_proc_id == PROC_AUTH) {
 				conf_new_access_rule(new_repo,
 				    GOTD_ACCESS_PERMITTED, GOTD_AUTH_READ, $3);
-			}
+			} else
+				free($3);
 		}
 		| PERMIT RW STRING {
 			if (gotd_proc_id == PROC_AUTH) {
 				conf_new_access_rule(new_repo,
 				    GOTD_ACCESS_PERMITTED,
 				    GOTD_AUTH_READ | GOTD_AUTH_WRITE, $3);
-			}
+			} else
+				free($3);
 		}
 		| DENY STRING {
 			if (gotd_proc_id == PROC_AUTH) {
 				conf_new_access_rule(new_repo,
 				    GOTD_ACCESS_DENIED, 0, $2);
-			}
+			} else
+				free($2);
 		}
 		| protect
 		;