Mercurial > dropbear
annotate dbhelpers.c @ 1487:b0c3b46372dc
simplify error handling, check mp_copy return value
author | Matt Johnston <matt@ucc.asn.au> |
---|---|
date | Sat, 10 Feb 2018 19:25:00 +0800 |
parents | 3017bc7d6238 |
children | 4b1a807a3188 |
rev | line source |
---|---|
1283
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
1 #include "dbhelpers.h" |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
2 #include "includes.h" |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
3 |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
4 /* Erase data */ |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
5 void m_burn(void *data, unsigned int len) { |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
6 |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
7 #if defined(HAVE_MEMSET_S) |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
8 memset_s(data, len, 0x0, len); |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
9 #elif defined(HAVE_EXPLICIT_BZERO) |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
10 explicit_bzero(data, len); |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
11 #else |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
12 /* Based on the method in David Wheeler's |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
13 * "Secure Programming for Linux and Unix HOWTO". May not be safe |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
14 * against link-time optimisation. */ |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
15 volatile char *p = data; |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
16 |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
17 if (data == NULL) |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
18 return; |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
19 while (len--) { |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
20 *p++ = 0x0; |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
21 } |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
22 #endif |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
23 } |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
24 |
3017bc7d6238
move m_burn and function attributes to dbhelpers
Matt Johnston <matt@ucc.asn.au>
parents:
diff
changeset
|
25 |