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