summaryrefslogtreecommitdiff
path: root/Lib/ruby/rubyrun.swg
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/ruby/rubyrun.swg')
-rw-r--r--Lib/ruby/rubyrun.swg10
1 files changed, 6 insertions, 4 deletions
diff --git a/Lib/ruby/rubyrun.swg b/Lib/ruby/rubyrun.swg
index 885292481..456bd9d8f 100644
--- a/Lib/ruby/rubyrun.swg
+++ b/Lib/ruby/rubyrun.swg
@@ -151,8 +151,9 @@ SWIG_Ruby_InitRuntime(void)
SWIGRUNTIME void
SWIG_Ruby_define_class(swig_type_info *type)
{
- char *klass_name = (char *) malloc(4 + strlen(type->name) + 1);
- sprintf(klass_name, "TYPE%s", type->name);
+ size_t klass_len = 4 + strlen(type->name) + 1;
+ char *klass_name = (char *) malloc(klass_len);
+ SWIG_snprintf(klass_name, klass_len, "TYPE%s", type->name);
if (NIL_P(_cSWIG_Pointer)) {
_cSWIG_Pointer = rb_define_class_under(_mSWIG, "Pointer", rb_cObject);
rb_undef_method(CLASS_OF(_cSWIG_Pointer), "new");
@@ -208,8 +209,9 @@ SWIG_Ruby_NewPointerObj(void *ptr, swig_type_info *type, int flags)
SWIG_RubyAddTracking(ptr, obj);
}
} else {
- klass_name = (char *) malloc(4 + strlen(type->name) + 1);
- sprintf(klass_name, "TYPE%s", type->name);
+ size_t klass_len = 4 + strlen(type->name) + 1;
+ klass_name = (char *) malloc(klass_len);
+ SWIG_snprintf(klass_name, klass_len, "TYPE%s", type->name);
klass = rb_const_get(_mSWIG, rb_intern(klass_name));
free((void *) klass_name);
obj = Data_Wrap_Struct(klass, 0, 0, ptr);