diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2007-04-06 11:22:19 +0200 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2007-04-06 11:22:19 +0200 |
commit | 0fdc3afe3f7e6168bc32f5a5a1626d7901865d25 (patch) | |
tree | e9e82f5e29e3ab545f39b1c4bc295902c8081f5a /gcc/ada/g-expect.adb | |
parent | 11f03980d014613ae18b77a98bc6e4e181887e87 (diff) | |
download | gcc-0fdc3afe3f7e6168bc32f5a5a1626d7901865d25.tar.gz |
g-expect.adb (Get_Command_Output): When expanding the output buffer we must ensure that there is enough place for...
* g-expect.adb (Get_Command_Output): When expanding the output buffer
we must ensure that there is enough place for the new data we are going
to copy in.
From-SVN: r123573
Diffstat (limited to 'gcc/ada/g-expect.adb')
-rw-r--r-- | gcc/ada/g-expect.adb | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/gcc/ada/g-expect.adb b/gcc/ada/g-expect.adb index 9517905d410..ffbcfc3d86f 100644 --- a/gcc/ada/g-expect.adb +++ b/gcc/ada/g-expect.adb @@ -93,7 +93,7 @@ package body GNAT.Expect is pragma Import (C, Kill, "__gnat_kill"); -- if Close is set to 1 all OS resources used by the Pid must be freed - function Create_Pipe (Pipe : access Pipe_Type) return Integer; + function Create_Pipe (Pipe : not null access Pipe_Type) return Integer; pragma Import (C, Create_Pipe, "__gnat_pipe"); function Poll @@ -782,7 +782,7 @@ package body GNAT.Expect is (Command : String; Arguments : GNAT.OS_Lib.Argument_List; Input : String; - Status : access Integer; + Status : not null access Integer; Err_To_Out : Boolean := False) return String is use GNAT.Expect; @@ -821,10 +821,11 @@ package body GNAT.Expect is pragma Assert (S'Length > 0); begin - -- Expand buffer if we need more space + -- Expand buffer if we need more space. Note here that we add + -- S'Length to ensure that S will fit in the new buffer size. if Last + S'Length > Output'Last then - NOutput := new String (1 .. 2 * Output'Last); + NOutput := new String (1 .. 2 * Output'Last + S'Length); NOutput (Output'Range) := Output.all; Free (Output); @@ -1215,9 +1216,9 @@ package body GNAT.Expect is procedure Set_Up_Communications (Pid : in out Process_Descriptor; Err_To_Out : Boolean; - Pipe1 : access Pipe_Type; - Pipe2 : access Pipe_Type; - Pipe3 : access Pipe_Type) + Pipe1 : not null access Pipe_Type; + Pipe2 : not null access Pipe_Type; + Pipe3 : not null access Pipe_Type) is Status : Boolean; |