Use strdup instead of hand-rolling one.
Index: src/crypto/objects/obj_lib.c
===================================================================
RCS file: /backup/mirrors/cvsync/src/lib/libssl/src/crypto/objects/obj_lib.c,v
retrieving revision 1.8
diff -u -p -u -r1.8 obj_lib.c
--- src/crypto/objects/obj_lib.c 19 Apr 2014 16:42:26 -0000 1.8
+++ src/crypto/objects/obj_lib.c 25 May 2014 11:56:46 -0000
@@ -67,7 +67,6 @@ OBJ_dup(const ASN1_OBJECT *o)
{
ASN1_OBJECT *r;
int i;
- char *ln = NULL, *sn = NULL;
unsigned char *data = NULL;
if (o == NULL)
@@ -92,21 +91,15 @@ OBJ_dup(const ASN1_OBJECT *o)
r->nid = o->nid;
r->ln = r->sn = NULL;
if (o->ln != NULL) {
- i = strlen(o->ln) + 1;
- ln = malloc(i);
- if (ln == NULL)
+ r->ln = strdup(o->ln);
+ if (r->ln == NULL)
goto err;
- memcpy(ln, o->ln, i);
- r->ln = ln;
}
if (o->sn != NULL) {
- i = strlen(o->sn) + 1;
- sn = malloc(i);
- if (sn == NULL)
+ r->sn = strdup(o->sn);
+ if (r->sn == NULL)
goto err;
- memcpy(sn, o->sn, i);
- r->sn = sn;
}
r->flags = o->flags | (ASN1_OBJECT_FLAG_DYNAMIC |
ASN1_OBJECT_FLAG_DYNAMIC_STRINGS | ASN1_OBJECT_FLAG_DYNAMIC_DATA);