Skip to content

Commit bd19445

Browse files
author
TheSnoozer
committed
validate in the core-plugin if the evaluateOnCommit is something sensible
1 parent 893a967 commit bd19445

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

src/main/java/pl/project13/core/GitCommitIdPlugin.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import java.text.SimpleDateFormat;
3030
import java.util.*;
3131
import java.util.function.Supplier;
32+
import java.util.regex.Pattern;
3233

3334
public class GitCommitIdPlugin {
3435
public interface Callback {
@@ -280,6 +281,8 @@ default Map<String, String> getSystemEnv() {
280281
boolean shouldPropertiesEscapeUnicode();
281282
}
282283

284+
protected static final Pattern allowedCharactersForEvaluateOnCommit = Pattern.compile("[a-zA-Z0-9\\_\\-\\^\\/\\.]+");
285+
283286
public static void runPlugin(@Nonnull Callback cb, @Nullable Properties contextProperties) throws GitCommitIdExecutionException {
284287
PropertiesFilterer propertiesFilterer = new PropertiesFilterer(cb.getLogInterface());
285288

@@ -333,6 +336,11 @@ protected static void loadBuildData(@Nonnull Callback cb, @Nonnull Properties pr
333336
}
334337

335338
protected static void loadGitData(@Nonnull Callback cb, @Nonnull Properties properties) throws GitCommitIdExecutionException {
339+
var evaluateOnCommit = cb.getEvaluateOnCommit();
340+
if ((evaluateOnCommit == null) || !allowedCharactersForEvaluateOnCommit.matcher(evaluateOnCommit).matches()) {
341+
throw new GitCommitIdExecutionException("suspicious argument for evaluateOnCommit, aborting execution!");
342+
}
343+
336344
if (cb.useNativeGit()) {
337345
loadGitDataWithNativeGit(cb, properties);
338346
} else {

0 commit comments

Comments
 (0)