aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLev Walkin <vlm@lionet.info>2004-08-11 07:41:45 +0000
committerLev Walkin <vlm@lionet.info>2004-08-11 07:41:45 +0000
commit7e0d2cb62c94d8bae2964e55c1f7b35972b258cb (patch)
tree48d0d43eb060962d6cd3a4914d25378dcdfc160f
parent659a751cfbc8a13fe370fff95ac3c204b93edb40 (diff)
portability
-rw-r--r--skeletons/OBJECT_IDENTIFIER.c1
-rw-r--r--skeletons/constr_SET.c6
-rw-r--r--skeletons/constraints.c2
-rw-r--r--skeletons/der_encoder.c10
4 files changed, 16 insertions, 3 deletions
diff --git a/skeletons/OBJECT_IDENTIFIER.c b/skeletons/OBJECT_IDENTIFIER.c
index 1e4fe594..0f713071 100644
--- a/skeletons/OBJECT_IDENTIFIER.c
+++ b/skeletons/OBJECT_IDENTIFIER.c
@@ -367,6 +367,7 @@ OBJECT_IDENTIFIER_set_single_arc(uint8_t *arcbuf, void *arcval, unsigned int arc
uint8_t buffer[arcval_size];
#else
uint8_t *buffer = alloca(arcval_size);
+ if(!buffer) { errno = ENOMEM; return -1; }
#endif
if(isLittleEndian && !prepared_order) {
diff --git a/skeletons/constr_SET.c b/skeletons/constr_SET.c
index 2fd0ac9b..dc699f5b 100644
--- a/skeletons/constr_SET.c
+++ b/skeletons/constr_SET.c
@@ -447,6 +447,12 @@ SET_encode_der(asn1_TYPE_descriptor_t *sd,
if(t2m_build_own) {
t2m = alloca(specs->elements_count * sizeof(t2m[0]));
t2m_count = 0;
+ if(!t2m) { /* There are such platforms */
+ my_erval.encoded = -1;
+ my_erval.failed_type = sd;
+ my_erval.structure_ptr = ptr;
+ return my_erval;
+ }
} else {
/*
* There is no untagged CHOICE in this SET.
diff --git a/skeletons/constraints.c b/skeletons/constraints.c
index cf317061..5f01cc73 100644
--- a/skeletons/constraints.c
+++ b/skeletons/constraints.c
@@ -108,7 +108,7 @@ _asn_i_log_error(asn_app_consume_bytes_f *cb, void *key, const char *fmt, ...) {
*/
len = ret + 1;
p = alloca(len);
- if(!p) return; /* Can't be though. */
+ if(!p) return; /* Can fail on !x86. */
va_start(ap, fmt);
diff --git a/skeletons/der_encoder.c b/skeletons/der_encoder.c
index 919350c5..dc547a2c 100644
--- a/skeletons/der_encoder.c
+++ b/skeletons/der_encoder.c
@@ -60,7 +60,10 @@ der_write_tags(asn1_TYPE_descriptor_t *sd,
*/
int stag_offset;
tags = alloca((sd->tags_count + 1) * sizeof(ber_tlv_tag_t));
- if(tags == NULL) return -1; /* Impossible on i386 */
+ if(!tags) { /* Can fail on !x86 */
+ errno = ENOMEM;
+ return -1;
+ }
tags_count = sd->tags_count
+ 1 /* EXPLICIT or IMPLICIT tag is given */
- ((tag_mode==-1)?sd->tags_impl_skip:0);
@@ -79,7 +82,10 @@ der_write_tags(asn1_TYPE_descriptor_t *sd,
return 0;
lens = alloca(tags_count * sizeof(lens[0]));
- if(lens == NULL) return -1;
+ if(!lens) {
+ errno = ENOMEM;
+ return -1;
+ }
/*
* Array of tags is initialized.