Add version of MBEDTLS_X509_SAFE_SNPRINTF supporting cleanup section
This will be needed in debugging functions that maintain heap
allocated state, and which hence needs to be freed in case an
`snprintf()` call fails.
diff --git a/include/mbedtls/x509.h b/include/mbedtls/x509.h
index f7987a9..583bc12 100644
--- a/include/mbedtls/x509.h
+++ b/include/mbedtls/x509.h
@@ -355,6 +355,18 @@
p += (size_t) ret; \
} while( 0 )
+#define MBEDTLS_X509_SAFE_SNPRINTF_WITH_CLEANUP \
+ do { \
+ if( ret < 0 || (size_t) ret >= n ) \
+ { \
+ ret = MBEDTLS_ERR_X509_BUFFER_TOO_SMALL; \
+ goto cleanup; \
+ } \
+ \
+ n -= (size_t) ret; \
+ p += (size_t) ret; \
+ } while( 0 )
+
#ifdef __cplusplus
}
#endif