Commit 4032ef18 authored by Michael Meskes's avatar Michael Meskes

Fix buffer overflow on particularly named files and clarify documentation about

output file naming.

Patch by Tsunakawa, Takayuki <tsunakawa.takay@jp.fujitsu.com>
parent ea0aa969
...@@ -42,11 +42,9 @@ PostgreSQL documentation ...@@ -42,11 +42,9 @@ PostgreSQL documentation
<para> <para>
<command>ecpg</command> will convert each input file given on the <command>ecpg</command> will convert each input file given on the
command line to the corresponding C output file. Input files command line to the corresponding C output file. Input files
preferably have the extension <filename>.pgc</filename>, in which preferably have the extension <filename>.pgc</filename>.
case the extension will be replaced by <filename>.c</filename> to The extension will be replaced by <filename>.c</filename> to
determine the output file name. If the extension of the input file determine the output file name.
is not <filename>.pgc</filename>, then the output file name is
computed by appending <literal>.c</literal> to the full file name.
The output file name can also be overridden using the The output file name can also be overridden using the
<option>-o</option> option. <option>-o</option> option.
</para> </para>
......
...@@ -313,7 +313,8 @@ main(int argc, char *const argv[]) ...@@ -313,7 +313,8 @@ main(int argc, char *const argv[])
base_yyout = stdout; base_yyout = stdout;
else else
{ {
output_filename = mm_strdup(input_filename); output_filename = mm_alloc(strlen(input_filename) + 3);
strcpy(output_filename, input_filename);
ptr2ext = strrchr(output_filename, '.'); ptr2ext = strrchr(output_filename, '.');
/* make extension = .c resp. .h */ /* make extension = .c resp. .h */
......
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