This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] find_and_open_script: Fix failed fdopen


On Mon, 23 Jan 2012 17:09:17 +0100, Pedro Alves wrote:
> On 01/23/2012 04:03 PM, Jan Kratochvil wrote:
> > @@ -513,6 +513,17 @@ find_and_open_script (const char *script_file, int search_path,
> >    do_cleanups (old_cleanups);
> >  
> >    *streamp = fdopen (fd, FOPEN_RT);
> > +  if (*streamp == NULL)
> > +    {
> > +      int save_errno = errno;
> > +
> > +      if (full_pathp)
> > +	xfree (*full_pathp);
> > +      do_cleanups (old_cleanups);
> 
> This do_cleanups doesn't look right.  From the patch context, there's
> already do_cleanups(old_cleanups) call a bit above.

Oops, thanks.  Also missing close there.


Regards,
Jan


gdb/
2012-01-23  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* cli/cli-cmds.c (find_and_open_script): Handle failure of fdopen.

--- a/gdb/cli/cli-cmds.c
+++ b/gdb/cli/cli-cmds.c
@@ -513,6 +513,17 @@ find_and_open_script (const char *script_file, int search_path,
   do_cleanups (old_cleanups);
 
   *streamp = fdopen (fd, FOPEN_RT);
+  if (*streamp == NULL)
+    {
+      int save_errno = errno;
+
+      close (fd);
+      if (full_pathp)
+	xfree (*full_pathp);
+      errno = save_errno;
+      return 0;
+    }
+
   return 1;
 }
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]