add and use der_{malloc,free}
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@22426 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -50,14 +50,14 @@ typedef struct heim_octet_string heim_any_set;
|
||||
#define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \
|
||||
do { \
|
||||
(BL) = length_##T((S)); \
|
||||
(B) = malloc((BL)); \
|
||||
(B) = der_malloc((BL)); \
|
||||
if((B) == NULL) { \
|
||||
(R) = ENOMEM; \
|
||||
} else { \
|
||||
(R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \
|
||||
(S), (L)); \
|
||||
if((R) != 0) { \
|
||||
free((B)); \
|
||||
der_free((B)); \
|
||||
(B) = NULL; \
|
||||
} \
|
||||
} \
|
||||
|
@@ -140,3 +140,15 @@ der_get_tag_num(const char *name)
|
||||
{
|
||||
return get_type(name, tag_names, SIZEOF_ARRAY(tag_names));
|
||||
}
|
||||
|
||||
void
|
||||
der_free(void *ptr)
|
||||
{
|
||||
free(ptr);
|
||||
}
|
||||
|
||||
void *
|
||||
der_malloc(size_t size)
|
||||
{
|
||||
return malloc(size);
|
||||
}
|
||||
|
@@ -154,14 +154,14 @@ init_generate (const char *filename, const char *base)
|
||||
fputs("#define ASN1_MALLOC_ENCODE(T, B, BL, S, L, R) \\\n"
|
||||
" do { \\\n"
|
||||
" (BL) = length_##T((S)); \\\n"
|
||||
" (B) = malloc((BL)); \\\n"
|
||||
" (B) = der_malloc((BL)); \\\n"
|
||||
" if((B) == NULL) { \\\n"
|
||||
" (R) = ENOMEM; \\\n"
|
||||
" } else { \\\n"
|
||||
" (R) = encode_##T(((unsigned char*)(B)) + (BL) - 1, (BL), \\\n"
|
||||
" (S), (L)); \\\n"
|
||||
" if((R) != 0) { \\\n"
|
||||
" free((B)); \\\n"
|
||||
" der_free((B)); \\\n"
|
||||
" (B) = NULL; \\\n"
|
||||
" } \\\n"
|
||||
" } \\\n"
|
||||
|
@@ -316,7 +316,7 @@ encode_type (const char *name, const Type *t, const char *tmpstr)
|
||||
"if(eret) {\n"
|
||||
"i--;\n"
|
||||
"while (i >= 0) {\n"
|
||||
"free(val[i].data);\n"
|
||||
"der_free(val[i].data);\n"
|
||||
"i--;\n"
|
||||
"}\n"
|
||||
"free(val);\n"
|
||||
|
Reference in New Issue
Block a user