Actions
Bug #9861
closedBSD_vfprintf precsion doesn't work at shorter string
Bug #9861: BSD_vfprintf precsion doesn't work at shorter string
Description
ruby_snprintfなどで"%s"に精度を指定してその精度よりも短い文字列を渡すと、本来の長さが無視されて精度まで'\0'が詰められます。
/* t.c */ #include <ruby/ruby.h> int main(void) { char buf[26]; ruby_snprintf(buf, sizeof(buf), "%.2s", "s"); printf("[%.2x][%.2x][%.2x]\n", buf[0], buf[1], buf[2]); return 0; } $ make t LDLIBS='$(LIBRUBYARG_STATIC) $(LIBS)' $ ./t [73][00][00] 最初のmissing/vsnprintf.cからあるようなので、1.4.0以降すべてのバージョンにあるバグだと思います。
Actions