From f1d3b0a9f225d7bffd6f559b4ffa62815edff2ef Mon Sep 17 00:00:00 2001 From: mlkgeek Date: Thu, 11 Sep 2025 13:55:39 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9C=B0=E5=9D=80=E8=B6=8A?= =?UTF-8?q?=E7=95=8C=E4=BB=A3=E7=A0=81release=E7=89=88=E6=9C=AC=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E4=BC=98=E5=8C=96=20=E4=BF=AE=E5=A4=8D=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E8=B6=8A=E7=95=8C=E4=BB=A3=E7=A0=81release=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E7=BC=96=E8=AF=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: mlkgeek --- .../entry/src/main/cpp/address_problems.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/MemoryDetection/entry/src/main/cpp/address_problems.cpp b/MemoryDetection/entry/src/main/cpp/address_problems.cpp index 88e555fe..2839bce2 100644 --- a/MemoryDetection/entry/src/main/cpp/address_problems.cpp +++ b/MemoryDetection/entry/src/main/cpp/address_problems.cpp @@ -40,6 +40,7 @@ void FunctionThatEscapesLocalObject() { int local[100]; ptr = &local[0]; + printf("address: %p", local); } int StackUseAfterReturn(int argc) @@ -61,6 +62,7 @@ int HeapBufferOverflow() *(buffer + 101) = 'n'; *(buffer + 102) = 'n'; free(buffer); + printf("address: %p", buffer); return buffer[1]; } // [End heap-buffer-overflow] @@ -87,6 +89,7 @@ int StackBufferOverflow() { int subscript = 43; char buffer[42]; buffer[subscript] = 42; + printf("address: %p", buffer); return 0; } // [End stack_buffer_overflow] @@ -101,6 +104,7 @@ int StackBufferUnderflow() { int subscript = -1; char buffer[42]; buffer[subscript] = 42; + printf("address: %p", buffer); return 0; } // [End stack_buffer_underflow] @@ -117,6 +121,7 @@ int StackUseAfterScope() { if (b) { int x[5]; gp = x + 1; + printf("address: %p", gp); } return *gp; } @@ -130,6 +135,7 @@ int StackUseAfterScope() { // [Start attempt_free_nonallocated_memory] int AttempFreeNonAllocatedMem() { int value = 42; + printf("address: %p", &value); free(&value); return 0; } @@ -143,6 +149,7 @@ int AttempFreeNonAllocatedMem() { // [Start double_free] int DoubleFree() { int *x = new int[42]; + printf("address: %p", &x); delete [] x; delete [] x; return 0; @@ -160,6 +167,7 @@ int stackBufferOverflowEx() { int subscript = 43; char buffer[42]; buffer[subscript] = 42; + printf("address: %p", buffer); return 0; } @@ -169,6 +177,7 @@ int stackBufferUnderflowEX() { int subscript = -1; char buffer[42]; buffer[subscript] = 42; + printf("address: %p", buffer); return 0; } @@ -180,6 +189,7 @@ void FunctionThatEscapesLocalObjectEx() { int local[100]; ptrEx = &local[0]; + printf("address: %p", local); } int Run(int argc) @@ -202,6 +212,7 @@ void HeapBufferOverflowEx() buffer = (char *)malloc(10); *(buffer + 11) = 'n'; *(buffer + 12) = 'n'; + printf("address: %p", buffer); free(buffer); } @@ -212,6 +223,7 @@ void HeapBufferUnderflowEx() buffer = (char *)malloc(10); *(buffer - 11) = 'n'; *(buffer - 12) = 'n'; + printf("address: %p", buffer); free(buffer); } // [End hw_heap_buffer_overflow] @@ -234,6 +246,7 @@ int UseAfterFreeEx(int argc) void DoubleFreeEx() { char *p = (char *)malloc(32 * sizeof(char)); + printf("address: %p", p); free(p); free(p); } -- Gitee