[LTP] [PATCH v2] android: madvise08: fix for android devices.
Sandeep Patil
sspatil@google.com
Wed Sep 6 00:33:02 CEST 2017
The test uses '%m' conversion specifier for vfscanf() that is not
supported in bionic. Use '%s' instead with a buffer that is substatially
larger than the current maximum coredump file name length of 128 bytes.
Signed-off-by: Sandeep Patil <sspatil@google.com>
---
v1->v2
---
- Fix the possibility of incorrectly replacing the coredump filename
pattern by an empty string in the test failure path.
testcases/kernel/syscalls/madvise/madvise08.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/testcases/kernel/syscalls/madvise/madvise08.c b/testcases/kernel/syscalls/madvise/madvise08.c
index 296c2bff3..a6fd9671c 100644
--- a/testcases/kernel/syscalls/madvise/madvise08.c
+++ b/testcases/kernel/syscalls/madvise/madvise08.c
@@ -49,10 +49,12 @@
#define CORE_FILTER "/proc/self/coredump_filter"
#define YCOUNT 0x500L
#define FMEMSIZE (YCOUNT + 0x2L)
+#define CORENAME_MAX_SIZE 512
static int dfd;
static void *fmem;
-static char *cpattern;
+static char cpattern[CORENAME_MAX_SIZE];
+static int restore_cpattern;
static void setup(void)
{
@@ -80,7 +82,8 @@ static void setup(void)
if (!(0x1 & filter))
tst_brk(TCONF, "Anonymous private memory is not dumpable.");
- SAFE_FILE_SCANF(CORE_PATTERN, "%m[^\n]", &cpattern);
+ SAFE_FILE_SCANF(CORE_PATTERN, "%s[^\n]", cpattern);
+ restore_cpattern = 1;
tst_res(TINFO, "System core pattern is '%s'", cpattern);
SAFE_GETCWD(cwd, sizeof(cwd));
@@ -108,11 +111,9 @@ static void setup(void)
static void cleanup(void)
{
- if (cpattern)
+ if (restore_cpattern)
SAFE_FILE_PRINTF(CORE_PATTERN, "%s", cpattern);
- free(cpattern);
-
if (fmem)
SAFE_MUNMAP(fmem, FMEMSIZE);
--
2.14.1.581.gf28d330327-goog
More information about the ltp
mailing list