summaryrefslogtreecommitdiff
path: root/ext/digest
diff options
context:
space:
mode:
Diffstat (limited to 'ext/digest')
-rw-r--r--ext/digest/digest.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/ext/digest/digest.c b/ext/digest/digest.c
index f737d254ab..5355776119 100644
--- a/ext/digest/digest.c
+++ b/ext/digest/digest.c
@@ -96,6 +96,12 @@ rb_digest_base_s_digest(class, str)
if (class == cDigest_Base)
rb_raise(rb_eNotImpError, "Digest::Base is an abstract class");
+#ifdef StringValue
+ StringValue(str);
+#else
+ Check_Type(str, T_STRING);
+#endif
+
algo = get_digest_base_metadata(class);
pctx = xmalloc(algo->ctx_size);
@@ -129,6 +135,12 @@ rb_digest_base_s_hexdigest(class, str)
if (class == cDigest_Base)
rb_raise(rb_eNotImpError, "Digest::Base is an abstract class");
+#ifdef StringValue
+ StringValue(str);
+#else
+ Check_Type(str, T_STRING);
+#endif
+
algo = get_digest_base_metadata(class);
pctx = xmalloc(algo->ctx_size);