mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Merge pull request #3649 from ksss/sprintf
Fix segmentation fault ref: #3648
This commit is contained in:
@@ -982,15 +982,17 @@ retry:
|
||||
}
|
||||
if (dots) PUSH("..", 2);
|
||||
|
||||
if (v < 0) {
|
||||
char c = sign_bits(base, p);
|
||||
FILL(c, prec - len);
|
||||
if (prec > len) {
|
||||
CHECK(prec - len);
|
||||
if (v < 0) {
|
||||
char c = sign_bits(base, p);
|
||||
FILL(c, prec - len);
|
||||
}
|
||||
else if ((flags & (FMINUS|FPREC)) != FMINUS) {
|
||||
char c = '0';
|
||||
FILL(c, prec - len);
|
||||
}
|
||||
}
|
||||
else if ((flags & (FMINUS|FPREC)) != FMINUS) {
|
||||
char c = '0';
|
||||
FILL(c, prec - len);
|
||||
}
|
||||
|
||||
PUSH(s, len);
|
||||
if (width > 0) {
|
||||
FILL(' ', width);
|
||||
|
||||
@@ -87,6 +87,10 @@ assert("String#% with invalid chr") do
|
||||
end
|
||||
end
|
||||
|
||||
assert("String#% %b") do
|
||||
assert_equal("..10115", "%0b5" % -5)
|
||||
end
|
||||
|
||||
assert("String#% invalid format") do
|
||||
assert_raise ArgumentError do
|
||||
"%?" % ""
|
||||
|
||||
Reference in New Issue
Block a user