diff options
Diffstat (limited to 'src/lib/libcrypto/x509/x509_att.c')
-rw-r--r-- | src/lib/libcrypto/x509/x509_att.c | 42 |
1 files changed, 16 insertions, 26 deletions
diff --git a/src/lib/libcrypto/x509/x509_att.c b/src/lib/libcrypto/x509/x509_att.c index 98460e8921..7f924fbe39 100644 --- a/src/lib/libcrypto/x509/x509_att.c +++ b/src/lib/libcrypto/x509/x509_att.c | |||
@@ -91,8 +91,7 @@ int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, ASN1_OBJECT *obj, | |||
91 | if (lastpos < 0) | 91 | if (lastpos < 0) |
92 | lastpos=0; | 92 | lastpos=0; |
93 | n=sk_X509_ATTRIBUTE_num(sk); | 93 | n=sk_X509_ATTRIBUTE_num(sk); |
94 | for ( ; lastpos < n; lastpos++) | 94 | for ( ; lastpos < n; lastpos++) { |
95 | { | ||
96 | ex=sk_X509_ATTRIBUTE_value(sk,lastpos); | 95 | ex=sk_X509_ATTRIBUTE_value(sk,lastpos); |
97 | if (OBJ_cmp(ex->object,obj) == 0) | 96 | if (OBJ_cmp(ex->object,obj) == 0) |
98 | return(lastpos); | 97 | return(lastpos); |
@@ -124,18 +123,15 @@ STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, | |||
124 | X509_ATTRIBUTE *new_attr=NULL; | 123 | X509_ATTRIBUTE *new_attr=NULL; |
125 | STACK_OF(X509_ATTRIBUTE) *sk=NULL; | 124 | STACK_OF(X509_ATTRIBUTE) *sk=NULL; |
126 | 125 | ||
127 | if (x == NULL) | 126 | if (x == NULL) { |
128 | { | ||
129 | X509err(X509_F_X509AT_ADD1_ATTR, ERR_R_PASSED_NULL_PARAMETER); | 127 | X509err(X509_F_X509AT_ADD1_ATTR, ERR_R_PASSED_NULL_PARAMETER); |
130 | goto err2; | 128 | goto err2; |
131 | } | 129 | } |
132 | 130 | ||
133 | if (*x == NULL) | 131 | if (*x == NULL) { |
134 | { | ||
135 | if ((sk=sk_X509_ATTRIBUTE_new_null()) == NULL) | 132 | if ((sk=sk_X509_ATTRIBUTE_new_null()) == NULL) |
136 | goto err; | 133 | goto err; |
137 | } | 134 | } else |
138 | else | ||
139 | sk= *x; | 135 | sk= *x; |
140 | 136 | ||
141 | if ((new_attr=X509_ATTRIBUTE_dup(attr)) == NULL) | 137 | if ((new_attr=X509_ATTRIBUTE_dup(attr)) == NULL) |
@@ -215,11 +211,10 @@ X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, | |||
215 | X509_ATTRIBUTE *ret; | 211 | X509_ATTRIBUTE *ret; |
216 | 212 | ||
217 | obj=OBJ_nid2obj(nid); | 213 | obj=OBJ_nid2obj(nid); |
218 | if (obj == NULL) | 214 | if (obj == NULL) { |
219 | { | ||
220 | X509err(X509_F_X509_ATTRIBUTE_CREATE_BY_NID,X509_R_UNKNOWN_NID); | 215 | X509err(X509_F_X509_ATTRIBUTE_CREATE_BY_NID,X509_R_UNKNOWN_NID); |
221 | return(NULL); | 216 | return(NULL); |
222 | } | 217 | } |
223 | ret=X509_ATTRIBUTE_create_by_OBJ(attr,obj,atrtype,data,len); | 218 | ret=X509_ATTRIBUTE_create_by_OBJ(attr,obj,atrtype,data,len); |
224 | if (ret == NULL) ASN1_OBJECT_free(obj); | 219 | if (ret == NULL) ASN1_OBJECT_free(obj); |
225 | return(ret); | 220 | return(ret); |
@@ -230,14 +225,12 @@ X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, | |||
230 | { | 225 | { |
231 | X509_ATTRIBUTE *ret; | 226 | X509_ATTRIBUTE *ret; |
232 | 227 | ||
233 | if ((attr == NULL) || (*attr == NULL)) | 228 | if ((attr == NULL) || (*attr == NULL)) { |
234 | { | 229 | if ((ret=X509_ATTRIBUTE_new()) == NULL) { |
235 | if ((ret=X509_ATTRIBUTE_new()) == NULL) | ||
236 | { | ||
237 | X509err(X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ,ERR_R_MALLOC_FAILURE); | 230 | X509err(X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ,ERR_R_MALLOC_FAILURE); |
238 | return(NULL); | 231 | return(NULL); |
239 | } | ||
240 | } | 232 | } |
233 | } | ||
241 | else | 234 | else |
242 | ret= *attr; | 235 | ret= *attr; |
243 | 236 | ||
@@ -256,22 +249,21 @@ err: | |||
256 | 249 | ||
257 | X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, | 250 | X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, |
258 | const char *atrname, int type, const unsigned char *bytes, int len) | 251 | const char *atrname, int type, const unsigned char *bytes, int len) |
259 | { | 252 | { |
260 | ASN1_OBJECT *obj; | 253 | ASN1_OBJECT *obj; |
261 | X509_ATTRIBUTE *nattr; | 254 | X509_ATTRIBUTE *nattr; |
262 | 255 | ||
263 | obj=OBJ_txt2obj(atrname, 0); | 256 | obj=OBJ_txt2obj(atrname, 0); |
264 | if (obj == NULL) | 257 | if (obj == NULL) { |
265 | { | ||
266 | X509err(X509_F_X509_ATTRIBUTE_CREATE_BY_TXT, | 258 | X509err(X509_F_X509_ATTRIBUTE_CREATE_BY_TXT, |
267 | X509_R_INVALID_FIELD_NAME); | 259 | X509_R_INVALID_FIELD_NAME); |
268 | ERR_add_error_data(2, "name=", atrname); | 260 | ERR_add_error_data(2, "name=", atrname); |
269 | return(NULL); | 261 | return(NULL); |
270 | } | 262 | } |
271 | nattr = X509_ATTRIBUTE_create_by_OBJ(attr,obj,type,bytes,len); | 263 | nattr = X509_ATTRIBUTE_create_by_OBJ(attr,obj,type,bytes,len); |
272 | ASN1_OBJECT_free(obj); | 264 | ASN1_OBJECT_free(obj); |
273 | return nattr; | 265 | return nattr; |
274 | } | 266 | } |
275 | 267 | ||
276 | int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj) | 268 | int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj) |
277 | { | 269 | { |
@@ -310,12 +302,10 @@ int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, const void *dat | |||
310 | if (attrtype == 0) | 302 | if (attrtype == 0) |
311 | return 1; | 303 | return 1; |
312 | if(!(ttmp = ASN1_TYPE_new())) goto err; | 304 | if(!(ttmp = ASN1_TYPE_new())) goto err; |
313 | if ((len == -1) && !(attrtype & MBSTRING_FLAG)) | 305 | if ((len == -1) && !(attrtype & MBSTRING_FLAG)) { |
314 | { | ||
315 | if (!ASN1_TYPE_set1(ttmp, attrtype, data)) | 306 | if (!ASN1_TYPE_set1(ttmp, attrtype, data)) |
316 | goto err; | 307 | goto err; |
317 | } | 308 | } else |
318 | else | ||
319 | ASN1_TYPE_set(ttmp, atype, stmp); | 309 | ASN1_TYPE_set(ttmp, atype, stmp); |
320 | if(!sk_ASN1_TYPE_push(attr->value.set, ttmp)) goto err; | 310 | if(!sk_ASN1_TYPE_push(attr->value.set, ttmp)) goto err; |
321 | return 1; | 311 | return 1; |