diff --git a/res/res_stir_shaken/stir_shaken.c b/res/res_stir_shaken/stir_shaken.c index b580773c31e271eab3673fbec79ef46778795f38..6bc07ea4d94dc6aa627c04a7f75bba3be32740a3 100644 --- a/res/res_stir_shaken/stir_shaken.c +++ b/res/res_stir_shaken/stir_shaken.c @@ -144,6 +144,7 @@ char *stir_shaken_get_serial_number_x509(const char *path) ASN1_INTEGER *serial; BIGNUM *bignum; char *serial_hex; + char *ret; fp = fopen(path, "r"); if (!fp) { @@ -188,5 +189,12 @@ char *stir_shaken_get_serial_number_x509(const char *path) return NULL; } - return serial_hex; + ret = ast_strdup(serial_hex); + OPENSSL_free(serial_hex); + if (!ret) { + ast_log(LOG_ERROR, "Failed to dup serial from openssl for certificate %s\n", path); + return NULL; + } + + return ret; }