From 27d0461b7bb00e8863dbb2087ce22bf67f9c1018 Mon Sep 17 00:00:00 2001 From: Will Newton Date: Thu, 3 Oct 2013 11:21:15 +0100 Subject: [PATCH] malloc/tst-posix_memalign.c: Tidy up code. Add some comments and call free on all potentially allocated pointers. ChangeLog: 2013-10-04 Will Newton * malloc/tst-posix_memalign.c: Add comments. (do_test): Add comments and call free on all potentially allocated pointers. Add space after cast. --- ChangeLog | 4 ++++ malloc/tst-posix_memalign.c | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7c26881..fab61a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3,6 +3,10 @@ * malloc/Makefile: Add tst-memalign. * malloc/tst-memalign.c: New file. + * malloc/tst-posix_memalign.c: Add comments. + (do_test): Add comments and call free on all potentially + allocated pointers. Add space after cast. + 2013-10-04 Alan Modra * sysdeps/powerpc/powerpc32/dl-machine.c (__process_machine_rela): diff --git a/malloc/tst-posix_memalign.c b/malloc/tst-posix_memalign.c index 9d9d1bf..27c0dd2 100644 --- a/malloc/tst-posix_memalign.c +++ b/malloc/tst-posix_memalign.c @@ -1,4 +1,5 @@ -/* Copyright (C) 2013 Free Software Foundation, Inc. +/* Test for posix_memalign. + Copyright (C) 2013 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -35,11 +36,13 @@ do_test (void) { void *p; int ret; - unsigned long pagesize = getpagesize(); + unsigned long pagesize = getpagesize (); unsigned long ptrval; p = NULL; + /* An attempt to allocate a huge value should return ENOMEM and + p should remain NULL. */ ret = posix_memalign (&p, sizeof (void *), -1); if (ret != ENOMEM) @@ -48,15 +51,22 @@ do_test (void) if (ret == ENOMEM && p != NULL) merror ("returned an error but pointer was modified"); + free (p); + p = NULL; + /* Test to expose integer overflow in malloc internals from BZ #15857. */ ret = posix_memalign (&p, pagesize, -pagesize); if (ret != ENOMEM) merror ("posix_memalign (&p, pagesize, -pagesize) succeeded."); + free (p); + p = NULL; + /* A zero-sized allocation should succeed with glibc, returning zero + and setting p to a non-NULL value. */ ret = posix_memalign (&p, sizeof (void *), 0); if (ret != 0 || p == NULL) @@ -84,9 +94,9 @@ do_test (void) if (ret == 0 && p == NULL) merror ("returned success but pointer is NULL"); - ptrval = (unsigned long)p; + ptrval = (unsigned long) p; - if (ret == 0 && (ptrval & 0xff)) + if (ret == 0 && (ptrval & 0xff) != 0) merror ("pointer is not aligned to 0x100"); free (p); -- 2.7.4