diff options
author | Norbert Preining <norbert@preining.info> | 2020-09-20 03:03:26 +0000 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2020-09-20 03:03:26 +0000 |
commit | 1f457376b478257b88d4a857f5ec1b6155442dd7 (patch) | |
tree | 2a06a60551dea362cf8cb0cb0ba66c78608717c4 /support/dktools/dk4memrs.c | |
parent | ac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff) |
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4memrs.c')
-rw-r--r-- | support/dktools/dk4memrs.c | 90 |
1 files changed, 36 insertions, 54 deletions
diff --git a/support/dktools/dk4memrs.c b/support/dktools/dk4memrs.c index cad97ca228..2c33e208cc 100644 --- a/support/dktools/dk4memrs.c +++ b/support/dktools/dk4memrs.c @@ -1,43 +1,21 @@ /* - WARNING: This file was generated by dkct. - Changes you make here will be lost if dkct is run again! - You should modify the original source and run dkct on it. - Original source: dk4memrs.ctr +Copyright (C) 2015-2020, Dirk Krause +SPDX-License-Identifier: BSD-3-Clause */ /* -Copyright (C) 2015-2017, Dirk Krause - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above opyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. -* Neither the name of the author nor the names of contributors may be used - to endorse or promote products derived from this software without specific - prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS'' -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY -DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + WARNING: This file was generated by the dkct program (see + http://dktools.sourceforge.net/ for details). + Changes you make here will be lost if dkct is run again! + You should modify the original source and run dkct on it. + Original source: dk4memrs.ctr */ /** @file dk4memrs.c The dk4memrs module. */ -#line 79 "dk4memrs.ctr" +#line 45 "dk4memrs.ctr" #include "dk4conf.h" @@ -56,51 +34,55 @@ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #endif #endif +#if DK4_HAVE_ASSERT_H +#ifndef ASSERT_H_INCLUDED +#include <assert.h> +#define ASSERT_H_INCLUDED 1 +#endif +#endif + #include "dk4mem.h" +#include "dk4memrs.h" + + + + +#line 75 "dk4memrs.ctr" + + +#ifndef DK4MEMRS_PARANOID_CHECK +#define DK4MEMRS_PARANOID_CHECK 0 +#endif + int dk4mem_reset_secure(void *ptr, size_t sz, dk4_er_t *erp) { -#if !DK4_ON_WINDOWS +#if (!DK4_ON_WINDOWS) && (DK4MEMRS_PARANOID_CHECK) unsigned char *p1; #endif int back = 0; - +#if DK4_USE_ASSERT + assert(NULL != ptr); + assert(0 < sz); +#endif if ((NULL != ptr) && (0 < sz)) { #if DK4_ON_WINDOWS SecureZeroMemory(ptr, sz); back = 1; #else DK4_MEMRES(ptr, sz); - p1 = (unsigned char *)ptr; back = 1; - while(sz--) { +#if DK4MEMRS_PARANOID_CHECK + p1 = (unsigned char *)ptr; + while((0 != back) && (sz--)) { if ('\0' != *(p1++)) { back = 0; dk4error_set_simple_error_code(erp, DK4_E_BUG); } } #endif - } else { - dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); - } - return back; -} - - - -int -dk4mem_free_secure(void *ptr, size_t sz, dk4_er_t *erp) -{ - int back = 0; - - if (NULL != ptr) { - if (0 < sz) { - back = dk4mem_reset_secure(ptr, sz, erp); - } else { - back = 1; - } - dk4mem_free(ptr); +#endif } else { dk4error_set_simple_error_code(erp, DK4_E_INVALID_ARGUMENTS); } |