From: Caspar Zhang <[email protected]>

in commit bacc849720ec4efda5a0a8a9ea6a0e93a1415541, malloc.h was removed
and stdlib.h got used instead. However, it's not enough. The function
memalign() is also obsolete (via man memalign) and we should use
posix_memalign instead. Also if we keep memalign() function here, the
program would probably hit segfault once it enters dwrite_t and dread_t.

v2: use correct &buf as argument
v3: remove incorrect disabling warning, will try to fix warning and
compiling without -DNO_XFS in another patch

Signed-off-by: Caspar Zhang <[email protected]>
---
 testcases/kernel/fs/fsstress/fsstress.c |   18 +++++++++++++++---
 1 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/testcases/kernel/fs/fsstress/fsstress.c 
b/testcases/kernel/fs/fsstress/fsstress.c
index e3b48ea..37956f3 100644
--- a/testcases/kernel/fs/fsstress/fsstress.c
+++ b/testcases/kernel/fs/fsstress/fsstress.c
@@ -1826,7 +1826,13 @@ dread_f(int opno, long r)
                len = align;
        else if (len > diob.d_maxiosz)
                len = diob.d_maxiosz;
-       buf = memalign(diob.d_mem, len);
+       if (posix_memalign((void **)&buf, diob.d_mem, len) != 0) {
+               perror("posix_memalign");
+               exit (1);
+       } else if (buf == NULL) {
+               fprintf(stderr, "buf remains NULL unexpectly\n");
+               exit (1);
+       }
        e = read(fd, buf, len) < 0 ? errno : 0;
        free(buf);
        if (v)
@@ -1909,7 +1915,13 @@ dwrite_f(int opno, long r)
                len = align;
        else if (len > diob.d_maxiosz)
                len = diob.d_maxiosz;
-       buf = memalign(diob.d_mem, len);
+       if (posix_memalign((void **)&buf, diob.d_mem, len) != 0) {
+               perror("posix_memalign");
+               exit (1);
+       } else if (buf == NULL) {
+               fprintf(stderr, "buf remains NULL unexpectly\n");
+               exit (1);
+       }
        off %= maxfsize;
        lseek64(fd, off, SEEK_SET);
        memset(buf, nameseq & 0xff, len);
@@ -2650,4 +2662,4 @@ write_f(int opno, long r)
                        procid, opno, f.path, (long long)off, (long int)len, e);
        free_pathname(&f);
        close(fd);
-}
\ No newline at end of file
+}
-- 
1.7.4.1


------------------------------------------------------------------------------
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to