summaryrefslogtreecommitdiff
path: root/support/dktools/dk4memrs.c
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2020-09-20 03:03:26 +0000
committerNorbert Preining <norbert@preining.info>2020-09-20 03:03:26 +0000
commit1f457376b478257b88d4a857f5ec1b6155442dd7 (patch)
tree2a06a60551dea362cf8cb0cb0ba66c78608717c4 /support/dktools/dk4memrs.c
parentac690ca29ad5bf8a5203a65fd6252f7b564f4727 (diff)
CTAN sync 202009200303
Diffstat (limited to 'support/dktools/dk4memrs.c')
-rw-r--r--support/dktools/dk4memrs.c90
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);
}