# Encoding.c should use ruby\_strdup

**URL:** <https://www.ruby-forum.com/t/encoding-c-should-use-ruby-strdup/144723>\
**Category:** Development\
**Created:** [August 1, 2008, 2:48pm UTC](https://www.ruby-forum.com/t/encoding-c-should-use-ruby-strdup/144723 "2008-08-01T14:48:34Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [August 1, 2008, 2:48pm UTC](https://www.ruby-forum.com/t/encoding-c-should-use-ruby-strdup/144723/1 "2008-08-01T14:48:34Z")

</div>

e$B1sF#$G$9!#e(B

encoding.c e$B$NCf$G@8$Ne(B strdup  
e$B$r;H$C$F$$$FJV$jCM$N8!::$r$7$F$$$J$$e(B  
e$B$?$a!"e(Bfailmalloc e$B$G$$$8$a$k$HMn$A$^$9!#e(B

$ FAILMALLOC\_SPACE=0x10 \

> LD\_PRELOAD=/home/mame/local/lib/libfailmalloc.so   
> ./ruby  
> Segmentation fault

encoding.c e$B$Ge(B #include “ruby/util.h” e$B$7$F!"e(Bruby\_strdup  
e$B$r;H$o$;$ke(B  
e$B$h$&$K$9$k$HD\>$j$^$9!#H?BP$,$J$1$l$P%3%\_%C%H$7$?$$$H;W$$$^$9!#e(B

# Index: encoding.c

— encoding.c (revision 18307)  
+++ encoding.c (working copy)  
@@ -16,6 +16,7 @@  
#ifdef HAVE\_LANGINFO\_H  
#include \<langinfo.h\>  
#endif  
+#include “ruby/util.h”

# static ID id\_encoding, id\_base\_encoding; VALUE rb\_cEncoding; Index: common.mk

— common.mk (revision 18307)  
+++ common.mk (working copy)  
@@ -451,7 +451,7 @@  
dmyencoding.$(OBJEXT): {$(VPATH)}dmyencoding.c   
{$(VPATH)}encoding.c $(RUBY\_H\_INCLUDES) {$(VPATH)}st.h   
{$(VPATH)}encoding.h {$(VPATH)}oniguruma.h {$(VPATH)}regenc.h  
-encoding.$(OBJEXT): dmyencoding.$(OBJEXT)  
+encoding.$(OBJEXT): dmyencoding.$(OBJEXT) {$(VPATH)}util.h  
enum.$(OBJEXT): {$(VPATH)}enum.c $(RUBY\_H\_INCLUDES)   
{$(VPATH)}st.h {$(VPATH)}node.h {$(VPATH)}util.h  
enumerator.$(OBJEXT): {$(VPATH)}enumerator.c $(RUBY\_H\_INCLUDES) \

e$B$"$H!";v8e$K$J$j$^$9$,!"e(Bvm.c e$B$NCf$G@8$Ne(B malloc  
e$B$r;H$C$F%A%’%C%/e(B  
e$B$9$k$h$&$K$7$^$7$?e(B (r18306) e$B!#$^$?!"e(Bgc.c e$B$NCf$Ge(B  
rb\_memerror() e$B$re(B  
e$B8F$VA0$Ke(B during\_gc = 0; e$B$9$k$h$&$K$7$^$7$?e(B (r18307) e$B!#e(B
