Fix const declarations.
[openssl.git] / crypto / objects / obj_lib.c
index 35a8d70e09ddf59e2222c212407621b6c2a32519..ba30736dc7ce2a8d42f52ea9563e952515df88ff 100644 (file)
@@ -1,5 +1,5 @@
 /* crypto/objects/obj_lib.c */
 /* crypto/objects/obj_lib.c */
-/* Copyright (C) 1995-1997 Eric Young (eay@cryptsoft.com)
+/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
  * All rights reserved.
  *
  * This package is an SSL implementation written
  * All rights reserved.
  *
  * This package is an SSL implementation written
@@ -67,18 +67,19 @@ ASN1_OBJECT *o;
        {
        ASN1_OBJECT *r;
        int i;
        {
        ASN1_OBJECT *r;
        int i;
+       char *ln=NULL;
 
        if (o == NULL) return(NULL);
        if (!(o->flags & ASN1_OBJECT_FLAG_DYNAMIC))
                return(o);
 
 
        if (o == NULL) return(NULL);
        if (!(o->flags & ASN1_OBJECT_FLAG_DYNAMIC))
                return(o);
 
-       r=(ASN1_OBJECT *)ASN1_OBJECT_new();
+       r=ASN1_OBJECT_new();
        if (r == NULL)
                {
                OBJerr(OBJ_F_OBJ_DUP,ERR_R_ASN1_LIB);
                return(NULL);
                }
        if (r == NULL)
                {
                OBJerr(OBJ_F_OBJ_DUP,ERR_R_ASN1_LIB);
                return(NULL);
                }
-       r->data=(unsigned char *)Malloc(o->length);
+       r->data=Malloc(o->length);
        if (r->data == NULL)
                goto err;
        memcpy(r->data,o->data,o->length);
        if (r->data == NULL)
                goto err;
        memcpy(r->data,o->data,o->length);
@@ -88,26 +89,28 @@ ASN1_OBJECT *o;
        if (o->ln != NULL)
                {
                i=strlen(o->ln)+1;
        if (o->ln != NULL)
                {
                i=strlen(o->ln)+1;
-               r->ln=(char *)Malloc(i);
+               r->ln=ln=Malloc(i);
                if (r->ln == NULL) goto err;
                if (r->ln == NULL) goto err;
-               memcpy(r->ln,o->ln,i);
+               memcpy(ln,o->ln,i);
                }
 
        if (o->sn != NULL)
                {
                }
 
        if (o->sn != NULL)
                {
+               char *s;
+
                i=strlen(o->sn)+1;
                i=strlen(o->sn)+1;
-               r->sn=(char *)Malloc(i);
+               r->sn=s=Malloc(i);
                if (r->sn == NULL) goto err;
                if (r->sn == NULL) goto err;
-               memcpy(r->sn,o->sn,i);
+               memcpy(s,o->sn,i);
                }
        r->flags=o->flags|(ASN1_OBJECT_FLAG_DYNAMIC|
                }
        r->flags=o->flags|(ASN1_OBJECT_FLAG_DYNAMIC|
-               ASN1_OBJECT_FLAG_DYNAMIC_STRINGS);
+               ASN1_OBJECT_FLAG_DYNAMIC_STRINGS|ASN1_OBJECT_FLAG_DYNAMIC_DATA);
        return(r);
 err:
        OBJerr(OBJ_F_OBJ_DUP,ERR_R_MALLOC_FAILURE);
        if (r != NULL)
                {
        return(r);
 err:
        OBJerr(OBJ_F_OBJ_DUP,ERR_R_MALLOC_FAILURE);
        if (r != NULL)
                {
-               if (r->ln != NULL) Free(r->ln);
+               if (ln != NULL) Free(ln);
                if (r->data != NULL) Free(r->data);
                Free(r);
                }
                if (r->data != NULL) Free(r->data);
                Free(r);
                }