mirror of
https://github.com/yuzu-emu/mbedtls.git
synced 2024-12-02 05:14:18 +01:00
5220781b98
Add it in all files that use mbedtls_plaform_memset() but didn't already include platfom_util.h. In some configurations it just happened to work, either because it was included indirectly or because the part of the code that used that function was disabled, but it some configurations it broke, so let's fix it properly.
125 lines
2.7 KiB
Plaintext
125 lines
2.7 KiB
Plaintext
/*
|
|
* Error message information
|
|
*
|
|
* Copyright (C) 2006-2015, ARM Limited, All Rights Reserved
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
* not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* This file is part of mbed TLS (https://tls.mbed.org)
|
|
*/
|
|
|
|
#if !defined(MBEDTLS_CONFIG_FILE)
|
|
#include "mbedtls/config.h"
|
|
#else
|
|
#include MBEDTLS_CONFIG_FILE
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ERROR_C) || defined(MBEDTLS_ERROR_STRERROR_DUMMY)
|
|
#include "mbedtls/error.h"
|
|
#include <string.h>
|
|
#include "mbedtls/platform_util.h"
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_PLATFORM_C)
|
|
#include "mbedtls/platform.h"
|
|
#else
|
|
#define mbedtls_snprintf snprintf
|
|
#define mbedtls_time_t time_t
|
|
#endif
|
|
|
|
#if defined(MBEDTLS_ERROR_C)
|
|
|
|
#include <stdio.h>
|
|
|
|
HEADER_INCLUDED
|
|
|
|
void mbedtls_strerror( int ret, char *buf, size_t buflen )
|
|
{
|
|
size_t len;
|
|
int use_ret;
|
|
|
|
if( buflen == 0 )
|
|
return;
|
|
|
|
mbedtls_platform_memset( buf, 0x00, buflen );
|
|
|
|
if( ret < 0 )
|
|
ret = -ret;
|
|
|
|
if( ret & 0xFF80 )
|
|
{
|
|
use_ret = ret & 0xFF80;
|
|
|
|
// High level error codes
|
|
//
|
|
// BEGIN generated code
|
|
HIGH_LEVEL_CODE_CHECKS
|
|
// END generated code
|
|
|
|
if( strlen( buf ) == 0 )
|
|
mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", use_ret );
|
|
}
|
|
|
|
use_ret = ret & ~0xFF80;
|
|
|
|
if( use_ret == 0 )
|
|
return;
|
|
|
|
// If high level code is present, make a concatenation between both
|
|
// error strings.
|
|
//
|
|
len = strlen( buf );
|
|
|
|
if( len > 0 )
|
|
{
|
|
if( buflen - len < 5 )
|
|
return;
|
|
|
|
mbedtls_snprintf( buf + len, buflen - len, " : " );
|
|
|
|
buf += len + 3;
|
|
buflen -= len + 3;
|
|
}
|
|
|
|
// Low level error codes
|
|
//
|
|
// BEGIN generated code
|
|
LOW_LEVEL_CODE_CHECKS
|
|
// END generated code
|
|
|
|
if( strlen( buf ) != 0 )
|
|
return;
|
|
|
|
mbedtls_snprintf( buf, buflen, "UNKNOWN ERROR CODE (%04X)", use_ret );
|
|
}
|
|
|
|
#else /* MBEDTLS_ERROR_C */
|
|
|
|
#if defined(MBEDTLS_ERROR_STRERROR_DUMMY)
|
|
|
|
/*
|
|
* Provide an non-function in case MBEDTLS_ERROR_C is not defined
|
|
*/
|
|
void mbedtls_strerror( int ret, char *buf, size_t buflen )
|
|
{
|
|
((void) ret);
|
|
|
|
if( buflen > 0 )
|
|
buf[0] = '\0';
|
|
}
|
|
|
|
#endif /* MBEDTLS_ERROR_STRERROR_DUMMY */
|
|
|
|
#endif /* MBEDTLS_ERROR_C */
|