Commit 0150ab56 authored by Bruce Momjian's avatar Bruce Momjian

to_char(): prevent accesses beyond the allocated buffer

Previously very long field masks for floats could access memory
beyond the existing buffer allocated to hold the result.

Reported by Andres Freund and Peter Geoghegan.	Backpatch to all
supported versions.

Security: CVE-2015-0241
parent f9ee8ea1
...@@ -4428,7 +4428,9 @@ NUM_numpart_to_char(NUMProc *Np, int id) ...@@ -4428,7 +4428,9 @@ NUM_numpart_to_char(NUMProc *Np, int id)
Np->num_in = TRUE; Np->num_in = TRUE;
} }
} }
++Np->number_p; /* do no exceed string length */
if (*Np->number_p)
++Np->number_p;
} }
end = Np->num_count + (Np->out_pre_spaces ? 1 : 0) + (IS_DECIMAL(Np->Num) ? 1 : 0); end = Np->num_count + (Np->out_pre_spaces ? 1 : 0) + (IS_DECIMAL(Np->Num) ? 1 : 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment