From 01c301afdd07ece8cb24cf85641354da60c0aab4 Mon Sep 17 00:00:00 2001 From: hasufell Date: Sun, 20 Apr 2014 19:50:49 +0200 Subject: [PATCH] MEM: introduce our own ntru_malloc() function Use this instead of malloc(). --- src/mem.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/mem.h | 29 +++++++++++++++++++++++++++++ src/poly.c | 3 ++- 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 src/mem.c create mode 100644 src/mem.h diff --git a/src/mem.c b/src/mem.c new file mode 100644 index 0000000..7a63f58 --- /dev/null +++ b/src/mem.c @@ -0,0 +1,48 @@ +/* + * Copyright (C) 2014 FH Bielefeld + * + * This file is part of a FH Bielefeld project. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ + +#include "mem.h" + +#include +#include + + +/** + * Allocate memory of size and return + * a void pointer. + * + * @param size of the memory to allocate in bytes + * @return void pointer to the beginning of the allocated memory block + */ +void *ntru_malloc(size_t size) +{ + void *ptr; + + ptr = malloc(size); + + if (size) + if (!ptr) { + fprintf(stderr, "failed to allocate memory, aborting!"); + abort(); + } + + return ptr; +} diff --git a/src/mem.h b/src/mem.h new file mode 100644 index 0000000..eabe1e9 --- /dev/null +++ b/src/mem.h @@ -0,0 +1,29 @@ +/* + * Copyright (C) 2014 FH Bielefeld + * + * This file is part of a FH Bielefeld project. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301 USA + */ + +#ifndef NTRU_MEM_H +#define NTRU_MEM_H + +#include + +void *ntru_malloc(size_t size); + +#endif /* NTRU_MEM_H */ diff --git a/src/poly.c b/src/poly.c index 6f00be2..72a5345 100644 --- a/src/poly.c +++ b/src/poly.c @@ -21,6 +21,7 @@ #include "context.h" #include "err.h" +#include "mem.h" #include "poly.h" #include @@ -108,7 +109,7 @@ pb_poly *build_polynom(int const * const c, pb_poly *new_poly; mp_int chara; - new_poly = malloc(sizeof(*new_poly)); + new_poly = ntru_malloc(sizeof(*new_poly)); init_integer(&chara); init_polynom_size(new_poly, &chara, len); mp_clear(&chara);