Skip to content

Commit b7da49f

Browse files
CaH9Iodrotbohm
authored andcommitted
DATACMNS-1327 - Prevent int overflow in AbstractPageRequest#getOffset().
Original pull request: #291.
1 parent 96c5ff8 commit b7da49f

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

src/main/java/org/springframework/data/domain/AbstractPageRequest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
*
2525
* @author Thomas Darimont
2626
* @author Oliver Gierke
27+
* @author Alex Bondarev
2728
*/
2829
public abstract class AbstractPageRequest implements Pageable, Serializable {
2930

@@ -74,7 +75,7 @@ public int getPageNumber() {
7475
* @see org.springframework.data.domain.Pageable#getOffset()
7576
*/
7677
public long getOffset() {
77-
return page * size;
78+
return (long) page * (long) size;
7879
}
7980

8081
/*

src/test/java/org/springframework/data/domain/AbstractPageRequestUnitTests.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
/**
2424
* @author Thomas Darimont
25+
* @author Alex Bondarev
2526
*/
2627
public abstract class AbstractPageRequestUnitTests {
2728

@@ -75,4 +76,12 @@ public void equalsHonoursPageAndSize() {
7576
public void preventsPageSizeLessThanOne() {
7677
newPageRequest(0, 0);
7778
}
79+
80+
@Test
81+
public void getOffsetShouldNotCauseOverflow() {
82+
83+
AbstractPageRequest request = newPageRequest(Integer.MAX_VALUE, Integer.MAX_VALUE);
84+
85+
assertThat(request.getOffset()).isGreaterThan(Integer.MAX_VALUE);
86+
}
7887
}

0 commit comments

Comments
 (0)