github / github/codeql

ArrayIndexOutOfBoundsException in com.semmle.inmemory.pipeline.MetaPipelineInstance.wrapWithRaDump(MetaPipelineInstance.java:204)

Đang mở
#19,197 2 bình luận 0 reaction 0 người được giao Xem trên GitHub
Ngôn ngữ chính
CodeQL
Star
10.1k
Fork
2.1k
Merge trung bình
2 ngày 15 giờ
Pull request đã merge (30 ngày)
141

Mô tả

java.lang.ArrayIndexOutOfBoundsException: Index 228617 out of bounds for length 202748
The RA to evaluate was:

{2} r1 = SCAN `SsaInternalsCommon::isUse/5#651d70a4` OUTPUT In.2, In.4
return r1

(eventual cause: ArrayIndexOutOfBoundsException "Index 228617 out of bounds for length 202748")
at com.semmle.inmemory.pipeline.MetaPipelineInstance.wrapWithRaDump(MetaPipelineInstance.java:204)
at com.semmle.inmemory.pipeline.MetaPipelineInstance.exceptionCaught(MetaPipelineInstance.java:174)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.handleAndLog(ThreadableWork.java:593)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.doSomeWork(ThreadableWork.java:410)
at com.semmle.inmemory.scheduler.IntensionalLayer$IntensionalWork.evaluate(IntensionalLayer.java:124)
at com.semmle.inmemory.scheduler.SimpleLayerTask$SimpleLayerWork.doWork(SimpleLayerTask.java:69)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.doSomeWork(ThreadableWork.java:396)
at com.semmle.inmemory.scheduler.execution.ExecutionScheduler.runnerMain(ExecutionScheduler.java:707)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ArrayIndexOutOfBoundsException: Index 228617 out of bounds for length 202748
at com.semmle.inmemory.relations.IntArraySorter.bsearchRange(IntArraySorter.java:689)
at com.semmle.inmemory.relations.IntArraySorter.bsearch(IntArraySorter.java:683)
at com.semmle.inmemory.relations.IntArraySorter.growRun(IntArraySorter.java:445)
at com.semmle.inmemory.relations.IntArraySorter.updateStack(IntArraySorter.java:299)
at com.semmle.inmemory.relations.IntArraySorter.sortAndDeliverCompletePages(IntArraySorter.java:141)
at com.semmle.inmemory.relations.writers.IntArrayWriter.sortAndDeliverCompletePages(IntArrayWriter.java:277)
at com.semmle.inmemory.relations.writers.UnsortedRelationWriter.makeSpaceIfNeeded(UnsortedRelationWriter.java:133)
at com.semmle.inmemory.relations.writers.UnsortedRelationWriter$1.addBatch(UnsortedRelationWriter.java:115)
at com.semmle.inmemory.pipeline.RelationWritingStep$RelationWritingState.processBatch(RelationWritingStep.java:90)
at com.semmle.inmemory.pipeline.SimpleStep$SimpleState.deliverBatch(SimpleStep.java:146)
at com.semmle.inmemory.pipeline.SimpleStep$SimpleState.deliverOwnBatch(SimpleStep.java:130)
at com.semmle.inmemory.pipeline.ExpanderStep$ExpanderState.deliverMatchOutput(ExpanderStep.java:85)
at com.semmle.inmemory.pipeline.LiteralStep$LiteralState.deliverRelation(LiteralStep.java:76)
at com.semmle.inmemory.pipeline.LiteralStep.deliverRelation(LiteralStep.java:161)
at com.semmle.inmemory.pipeline.LiteralStep$1.headEndWork(LiteralStep.java:141)
at com.semmle.inmemory.pipeline.HeadEndDispatcher.headEndWork(HeadEndDispatcher.java:75)
at com.semmle.inmemory.pipeline.PipelineState.doSomeWork(PipelineState.java:88)
at com.semmle.inmemory.pipeline.PipelineInstance.doWork(PipelineInstance.java:78)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.doSomeWork(ThreadableWork.java:396)
at com.semmle.inmemory.scheduler.execution.ChainingWork.doWork(ChainingWork.java:30)
at com.semmle.inmemory.scheduler.execution.ThreadableWork.doSomeWork(ThreadableWork.java:396)
... 7 more

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Hướng nghiên cứu

Bắt đầu với MetaPipelineInstance.java ở các dòng 204 và 174, sau đó kiểm tra IntArraySorter.java quanh các dòng 689, 683, 445, 299 và 141. Tái hiện phép đánh giá RA đã được báo cáo cho SsaInternalsCommon::isUse/5#651d70a4 và theo dõi cách chỉ mục vượt quá độ dài của quan hệ. Hoàn thành khi phép đánh giá không còn phát sinh ArrayIndexOutOfBoundsException và có độ bao phủ cho trường hợp lỗi.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
backend
Loại issue
Lỗi
Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Cần làm rõ
Mức phù hợp với người mới
25/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.