mirror of
https://github.com/jenkinsci/jenkins.git
synced 2026-11-15 04:52:20 +00:00
[FIXED JENKINS-25897] Add range check for H(X-Y) syntax
(cherry picked from commit 9a8329ebfe)
This commit is contained in:
1 parent
dd2083aa47
commit
6e67cb9e28
2 files changed
+5
-3
No files matched your search
@@ -110,7 +110,7 @@ throws ANTLRException
|
||||
}
|
||||
| ("H" "(")=> "H" "(" s=token "-" e=token ")" ( "/" d=token )?
|
||||
{
|
||||
bits = doHash(s,e,d);
|
||||
bits = doHash(s,e,d,field);
|
||||
}
|
||||
| "H" ( "/" d=token )?
|
||||
{
|
||||
|
||||
@@ -96,10 +96,12 @@ abstract class BaseParser extends LLkParser {
|
||||
int u = UPPER_BOUNDS[field];
|
||||
if (field==2) u = 28; // day of month can vary depending on month, so to make life simpler, just use [1,28] that's always safe
|
||||
if (field==4) u = 6; // Both 0 and 7 of day of week are Sunday. For better distribution, limit upper bound to 6
|
||||
return doHash(LOWER_BOUNDS[field], u, step);
|
||||
return doHash(LOWER_BOUNDS[field], u, step, field);
|
||||
}
|
||||
|
||||
protected long doHash(int s, int e, int step) throws ANTLRException {
|
||||
protected long doHash(int s, int e, int step, int field) throws ANTLRException {
|
||||
rangeCheck(s, field);
|
||||
rangeCheck(e, field);
|
||||
if (step > e - s + 1) {
|
||||
error(Messages.BaseParser_OutOfRange(step, 1, e - s + 1));
|
||||
throw new AssertionError();
|
||||
|
||||
Reference in new issue
Block a user