aboutsummaryrefslogtreecommitdiffstats
path: root/ossl.c
diff options
context:
space:
mode:
authorMichal Rokos <m.rokos@sh.cvut.cz>2001-11-19 12:44:57 +0000
committerMichal Rokos <m.rokos@sh.cvut.cz>2001-11-19 12:44:57 +0000
commitcceffafefe8d78e8b7b8d0c4563ec0d48f44eed3 (patch)
treefd1286c83be09812fd97b3ac0b58f15ce374fa00 /ossl.c
parentdd5dc9508d397e96ee4aa849f411567e78b49e32 (diff)
downloadruby-openssl-history-cceffafefe8d78e8b7b8d0c4563ec0d48f44eed3.tar.gz
added X509::Certificate .to_der
Diffstat (limited to 'ossl.c')
-rw-r--r--ossl.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/ossl.c b/ossl.c
index 59a5bef..176d3dd 100644
--- a/ossl.c
+++ b/ossl.c
@@ -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;
}