[LTP] [PATCH] mmap01: Convert to new API
Jan Stancek
jstancek@redhat.com
Fri Nov 15 14:57:53 CET 2024
On Wed, Nov 13, 2024 at 8:15 PM Ricardo B. Marliere via ltp
<ltp@lists.linux.it> wrote:
<snip>
> + addr = mmap(NULL, page_sz, PROT_READ | PROT_WRITE,
> + MAP_FILE | MAP_SHARED, fildes, 0);
> +
> + if (addr == MAP_FAILED) {
> + tst_res(TFAIL | TERRNO, "mmap of %s failed", TEMPFILE);
> + return;
> + }
Can we use SAFE_MMAP here?
> +
> + /*
> + * Check if mapped memory area beyond EOF are
> + * zeros and changes beyond EOF are not written
> + * to file.
> + */
> + if (memcmp(&addr[file_sz], dummy, page_sz - file_sz))
> + tst_brk(TFAIL, "mapped memory area contains invalid data");
> +
> + /*
> + * Initialize memory beyond file size
> + */
> + addr[file_sz] = 'X';
> + addr[file_sz + 1] = 'Y';
> + addr[file_sz + 2] = 'Z';
> +
> + /*
> + * Synchronize the mapped memory region
> + * with the file.
> + */
> + if (msync(addr, page_sz, MS_SYNC) != 0) {
> + tst_res(TFAIL | TERRNO, "failed to synchronize mapped file");
> + return;
> + }
> +
> + /*
> + * Now, search for the pattern 'XYZ' in the temporary file.
> + * The pattern should not be found and the return value should be 1.
> + */
> + if (system(cmd_buffer) != 0) {
> + tst_res(TPASS, "Functionality of mmap() successful");
> + } else {
> + tst_res(TFAIL, "Specified pattern found in file");
> + return;
> }
>
> - cleanup();
> - tst_exit();
> + /*
> + * Clean up things in case we are looping
> + * Unmap the mapped memory
> + */
> + if (munmap(addr, page_sz) != 0) {
> + tst_res(TFAIL | TERRNO, "munmap failed");
> + return;
> + }
and SAFE_MUNMAP here? Otherwise this looks OK to me.
Regards,
Jan
More information about the ltp
mailing list