#include <stdio.h>
main()
{
FILE* fp;
int num;
fp = fopen("./test.txt", "r");
if ( fp == NULL){
perror("Error:");
exit(-1);
}
fscanf(fp, "%d", &num);
if ( num < 0 ){
printf("Error: the num should be greater than 0!\n");
exit(-1);
}
fclose(fp);
}
|
> ./hello
**** Purify instrumented hello (pid 25698 at Wed Dec 10
22:29:33
2003)
* Purify 2003.06.00 Solaris 2 (32-bit) Copyright (C) 1992-2002 Rational Software Corp. All rights reserved.
* For contact information type: "purify -help"
* Options settings: -follow-child-processes=yes -purify -windows=no \
-purify-home=/usr/rational/releases/purify.sol.2003.06.00 \
-gcc3_path=/usr/local/bin/gcc \
-cache-dir=/usr/rational/releases/purify.sol.2003.06.00/cache \
-demangle_program=/usr/local/bin/c++filt
* License successfully checked out.
* Command-line: ./hello
**** Purify instrumented hello (pid 25698) ****
ABR: Array bounds read:
* This is occurring while in:
strlen [rtlib.o]
_doprnt [libc.so.1]
printf [libc.so.1]
main [hello.c:11]
_start [crt1.o]
* Reading 13 bytes from 0x8ea08 in the heap (1 byte at 0x8ea14 illegal).
* Address 0x8ea08 is at the beginning of a malloc'd block of 12 bytes.
* This block was allocated from:
malloc [rtlib.o]
main [hello.c:8]
_start [crt1.o]
Hello, World
**** Purify instrumented hello (pid 25698) ****
Current file de.ors in use: 5
FIU: file de.or 0: <stdin>
FIU: file de.or 1: <stdout>
FIU: file de.or 2: <stderr>
FIU: file de.or 26: <reserved for Purify internal use>
FIU: file de.or 27: <reserved for Purify internal use>
**** Purify instrumented hello (pid 25698) ****
Purify: Searching for all memory leaks...
Memory leaked: 12 bytes (100%); potentially leaked: 0 bytes (0%)
MLK: 12 bytes leaked at 0x8ea08
* This memory was allocated from:
malloc [rtlib.o]
main [hello.c:8]
_start [crt1.o]
Purify Heap Analysis (combining suppressed and unsuppressed blocks)
Blocks Bytes
Leaked 1 12
Potentially Leaked 0 0
In-Use 0 0
----------------------------------------
Total Allocated 1 12
**** Purify instrumented hello (pid 25698) ****
* Program exited with status code 13.
* 1 access error, 1 total occurrence.
* 12 bytes leaked.
* 0 bytes potentially leaked.
* Basic memory usage (including Purify overhead):
351348 code
101724 data/bss
8192 heap (peak use)
1272 stack
* Shared library memory usage (including Purify overhead):
992 libpure_solaris2_init.so.1 (shared code)
280 libpure_solaris2_init.so.1 (private data)
1079516 libc.so.1_pure_p3_c0_111202132_58_32_1158500S (shared code)
31404 libc.so.1_pure_p3_c0_111202132_58_32_1158500S (private data)
2324 libdl.so.1_pure_p3_c0_111202132_58_32_4624S (shared code)
4 libdl.so.1_pure_p3_c0_111202132_58_32_4624S (private data)
14048 libinternal_stubs.so.1 (shared code)
940 libinternal_stubs.so.1 (private data)
|