Use X509_get_serialNumber() instead of accessing internals in x509.c
[openssl.git] / apps / x509.c
index 036e255054e1eade37ea77ed9535765da0d8c028..4869b14025d467c38eca805b8faba4eaa95d1cad 100644 (file)
@@ -73,6 +73,8 @@
 #include <openssl/x509v3.h>
 #include <openssl/objects.h>
 #include <openssl/pem.h>
+#include <openssl/rsa.h>
+#include <openssl/dsa.h>
 
 #undef PROG
 #define PROG x509_main
@@ -693,7 +695,8 @@ bad:
                        else if (serial == i)
                                {
                                BIO_printf(STDout,"serial=");
-                               i2a_ASN1_INTEGER(STDout,x->cert_info->serialNumber);
+                               i2a_ASN1_INTEGER(STDout,
+                                       X509_get_serialNumber(x));
                                BIO_printf(STDout,"\n");
                                }
                        else if (email == i) 
@@ -1048,24 +1051,26 @@ static ASN1_INTEGER *x509_load_serial(char *CAfile, char *serialfile, int create
        char *buf = NULL, *p;
        ASN1_INTEGER *bs = NULL;
        BIGNUM *serial = NULL;
+       size_t len;
 
-       buf=OPENSSL_malloc( ((serialfile == NULL)
-                       ?(strlen(CAfile)+strlen(POSTFIX)+1)
-                       :(strlen(serialfile)))+1);
+       len = ((serialfile == NULL)
+               ?(strlen(CAfile)+strlen(POSTFIX)+1)
+               :(strlen(serialfile)))+1;
+       buf=OPENSSL_malloc(len);
        if (buf == NULL) { BIO_printf(bio_err,"out of mem\n"); goto end; }
        if (serialfile == NULL)
                {
-               strcpy(buf,CAfile);
+               BUF_strlcpy(buf,CAfile,len);
                for (p=buf; *p; p++)
                        if (*p == '.')
                                {
                                *p='\0';
                                break;
                                }
-               strcat(buf,POSTFIX);
+               BUF_strlcat(buf,POSTFIX,len);
                }
        else
-               strcpy(buf,serialfile);
+               BUF_strlcpy(buf,serialfile,len);
 
        serial = load_serial(buf, create, NULL);
        if (serial == NULL) goto end;