mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-17 10:41:06 +01:00
fix integer overflow of request with body larger than 4gb, see issue #953
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
package sonia.scm.web.cgi;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.mockito.Mock;
|
||||
import org.mockito.runners.MockitoJUnitRunner;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
/**
|
||||
* Unit tests for {@link DefaultCGIExecutor}.
|
||||
*/
|
||||
@RunWith(MockitoJUnitRunner.class)
|
||||
public class DefaultCGIExecutorTest {
|
||||
|
||||
@Mock
|
||||
private HttpServletRequest request;
|
||||
|
||||
@Test
|
||||
public void testCreateCGIContentLength() {
|
||||
when(request.getHeader("Content-Length")).thenReturn("42");
|
||||
assertEquals("42", DefaultCGIExecutor.createCGIContentLength(request, false));
|
||||
assertEquals("42", DefaultCGIExecutor.createCGIContentLength(request, true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateCGIContentLengthWithZeroLength() {
|
||||
when(request.getHeader("Content-Length")).thenReturn("0");
|
||||
assertEquals("", DefaultCGIExecutor.createCGIContentLength(request, false));
|
||||
assertEquals("-1", DefaultCGIExecutor.createCGIContentLength(request, true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateCGIContentLengthWithoutContentLengthHeader() {
|
||||
assertEquals("", DefaultCGIExecutor.createCGIContentLength(request, false));
|
||||
assertEquals("-1", DefaultCGIExecutor.createCGIContentLength(request, true));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateCGIContentLengthWithLengthThatExeedsInteger() {
|
||||
when(request.getHeader("Content-Length")).thenReturn("6314297259");
|
||||
assertEquals("6314297259", DefaultCGIExecutor.createCGIContentLength(request, false));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testCreateCGIContentLengthWithNonNumberHeader() {
|
||||
when(request.getHeader("Content-Length")).thenReturn("abc");
|
||||
assertEquals("", DefaultCGIExecutor.createCGIContentLength(request, false));
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user