Letcode 오류 AddressSanitizer: heap-buffer-overflow on address 0x603000000028
int singleNumber(int* nums, int numsSize){
int i = 1;
int data;
data = nums[0];
while (i < numsSize) {
if (data != nums[i]) {
i++;
}
else {
i += 2;
data = nums[i+1];
}
}
return data;
}
설명:
너의 알고리즘은 반드시 선형 시간 복잡도를 가지고 있어야 한다.너는 추가 공간을 사용하지 않고 실현할 수 있니?
1:
: [2,2,1]
: 1
2:
: [4,1,2,1,2]
: 4
else {
i += 2;
data = nums[i+1];
}
데이터 값을 부여하기 전에 i+2 작업을 하고num[i+1]를 실행할 때 i가 크기 값보다 크면 수조nums[]가 경계를 넘을 수 있으며 수정 후 ok를 실행합니다
else {
data = nums[i+1];
i += 2;
}
==30==ERROR: AddressSanitizer: heap-buffer-overflow on address 0x603000000028 at pc 0x0000004018d1 bp 0x7ffc7efb9960 sp 0x7ffc7efb9958
READ of size 4 at 0x603000000028 thread T0
#2 0x7f54691a52e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
0x603000000028 is located 4 bytes to the right of 20-byte region [0x603000000010,0x603000000024)
allocated by thread T0 here:
#0 0x7f546a62f2b0 in malloc (/usr/local/lib64/libasan.so.5+0xe82b0)
#3 0x7f54691a52e0 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
Shadow bytes around the buggy address:
0x0c067fff7fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c067fff7fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c067fff7fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c067fff7fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c067fff7ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x0c067fff8000: fa fa 00 00 04[fa]fa fa fa fa fa fa fa fa fa fa
0x0c067fff8010: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fff8020: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fff8030: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fff8040: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
0x0c067fff8050: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==30==ABORTIN
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.