Skip to content

Commit 2bbcbbf

Browse files
committed
Add macro for the reserved error code
The documentation in error.h mentions that the error code -1 is reserved for other errors. Make this explicit by adding a macro to error.h.
1 parent 2e6cbcd commit 2bbcbbf

File tree

3 files changed

+23
-1
lines changed

3 files changed

+23
-1
lines changed

include/mbedtls/error.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@
5555
* Low-level module errors (0x0002-0x007E, 0x0003-0x007F)
5656
*
5757
* Module Nr Codes assigned
58+
* (any) 1 0x0001
5859
* MPI 7 0x0002-0x0010
5960
* GCM 3 0x0012-0x0014 0x0013-0x0013
6061
* BLOWFISH 3 0x0016-0x0018 0x0017-0x0017
@@ -108,6 +109,8 @@
108109
* Module dependent error code (5 bits 0x.00.-0x.F8.)
109110
*/
110111

112+
#define MBEDTLS_ERR_GENERIC_ERROR -0x0001 /**< Generic error */
113+
111114
#ifdef __cplusplus
112115
extern "C" {
113116
#endif

library/error.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,8 @@ void mbedtls_strerror( int ret, char *buf, size_t buflen )
688688
if( use_ret == -(MBEDTLS_ERR_XTEA_HW_ACCEL_FAILED) )
689689
mbedtls_snprintf( buf, buflen, "XTEA - XTEA hardware accelerator failed" );
690690
#endif /* MBEDTLS_XTEA_C */
691+
if( use_ret == -(MBEDTLS_ERR_GENERIC_ERROR) )
692+
mbedtls_snprintf( buf, buflen, "Generic error" );
691693
// END generated code
692694

693695
if( strlen( buf ) != 0 )

scripts/generate_errors.pl

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,9 @@
6666

6767
my %error_codes_seen;
6868

69+
my $reserved_name = "";
70+
my $reserved_description = "";
71+
my $ll_white_space = ' ';
6972

7073
foreach my $line (@matches)
7174
{
@@ -82,6 +85,13 @@
8285
warn "Missing description for $error_name\n";
8386
}
8487

88+
if (hex($error_code) == 1)
89+
{
90+
$reserved_name = $error_name;
91+
$reserved_description = $description;
92+
next;
93+
}
94+
8595
my ($module_name) = $error_name =~ /^MBEDTLS_ERR_([^_]+)/;
8696

8797
# Fix faulty ones
@@ -114,7 +124,7 @@
114124
{
115125
$code_check = \$ll_code_check;
116126
$old_define = \$ll_old_define;
117-
$white_space = ' ';
127+
$white_space = $ll_white_space;
118128
}
119129
else
120130
{
@@ -182,6 +192,13 @@
182192
$hl_code_check .= " */\n";
183193
}
184194

195+
if ($reserved_name ne "")
196+
{
197+
$ll_code_check .= "${ll_white_space}if( use_ret == -($reserved_name) )\n".
198+
"${ll_white_space} mbedtls_snprintf( buf, buflen, \"".
199+
"$reserved_description\" );\n"
200+
}
201+
185202
$error_format =~ s/HEADER_INCLUDED\n/$headers/g;
186203
$error_format =~ s/LOW_LEVEL_CODE_CHECKS\n/$ll_code_check/g;
187204
$error_format =~ s/HIGH_LEVEL_CODE_CHECKS\n/$hl_code_check/g;

0 commit comments

Comments
 (0)