--- - 2013-11-25 22:10:59.694183795 -0700 +++ file.c 2013-11-25 22:10:03.076352889 -0700 @@ -2529,8 +2529,8 @@ || (rv < 0 && errno == ERANGE) /* quirky behavior of GPFS */ #endif ) { - rb_str_modify_expand(v, size); size *= 2; + rb_str_modify_expand(v, size); } if (rv < 0) { rb_str_resize(v, 0);