diff options
author | Michal Rokos <m.rokos@sh.cvut.cz> | 2001-11-19 12:44:57 +0000 |
---|---|---|
committer | Michal Rokos <m.rokos@sh.cvut.cz> | 2001-11-19 12:44:57 +0000 |
commit | cceffafefe8d78e8b7b8d0c4563ec0d48f44eed3 (patch) | |
tree | fd1286c83be09812fd97b3ac0b58f15ce374fa00 /ossl.c | |
parent | dd5dc9508d397e96ee4aa849f411567e78b49e32 (diff) | |
download | ruby-openssl-history-cceffafefe8d78e8b7b8d0c4563ec0d48f44eed3.tar.gz |
added X509::Certificate .to_der
Diffstat (limited to 'ossl.c')
-rw-r--r-- | ossl.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -24,11 +24,14 @@ void ossl_check_type(VALUE obj, VALUE klass) #ifdef OSSL_DEBUG inline char *ossl_error() { char *ret = NULL, *err = NULL; - int err_len = NULL; + int ret_len = 0; err = ERR_error_string(ERR_get_error(), NULL); - ret = malloc(strlen(err)+strlen(__FILE__)+(sizeof(__LINE__)*3)+5); - sprintf(ret, "%s [%s:%d]", err, __FILE__, __LINE__); + ret_len = strlen(err)+strlen(__FILE__)+(sizeof(__LINE__)*3)+5; + ret = malloc(ret_len+1); + if (snprintf(ret, ret_len, "%s [%s:%d]", err, __FILE__, __LINE__) > ret_len) { + rb_bug("BUFFER OVERFLOW IN ossl_error()); + } return ret; } |