[Bug gdb/23555] New: Segmentation fault on attempt to print warning that getcwd failed

classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

[Bug gdb/23555] New: Segmentation fault on attempt to print warning that getcwd failed

agentzh at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=23555

            Bug ID: 23555
           Summary: Segmentation fault on attempt to print warning that
                    getcwd failed
           Product: gdb
           Version: 8.2
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gdb
          Assignee: unassigned at sourceware dot org
          Reporter: b7.10110111 at gmail dot com
  Target Milestone: ---

On my aarch64-based Android system GDB fails to getcwd() from main() to obtain
current_directory (due to EACCES). This results in the attempt to print a
warning using perror_warning_with_name. But when this function finally lands in
vwarning(), the latter calls target_supports_terminal_ours(), which, in its
turn, dereferences current_top_target(), which is NULL since gdb_init (which
does target_stack::push with a dummy target) would only be called later.

Now, even if I apply a workaround like `if(!current_top_target()) return
false;` before dereferencing the pointer, GDB crashes later, when I execute
e.g. "starti" command. Not sure what this influences, but faking
current_directory with "/" in the case when getcwd failed prevents further
crashes, so that I'm at least able to use GDB.

On systems where getcwd works without problems this failure can be simulated by
replacing the call by NULL. Then all the symptoms can be reproduced.

--
You are receiving this mail because:
You are on the CC list for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug gdb/23555] Segmentation fault on attempt to print warning that getcwd failed

agentzh at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=23555

Sergio Durigan Junior <sergiodj at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |sergiodj at redhat dot com

--- Comment #1 from Sergio Durigan Junior <sergiodj at redhat dot com> ---
Thanks for the report.

I managed to reproduce the problem here.  I'm not really sure what to do when
we can't determine the current working directory; GDB relies on it for some
important things (locating the binary is one of them), and that's why just
using "/" doesn't really work (aside from the fact that "/" is UNIX centric).

It seems to me that a better approach here would be to just bail out, instead
of trying to workaround the failure.  I'll think better about this tomorrow,
and try to come up with a solution.

As for the current_top_target () == NULL failure, I'll submit a patch soon to
fix it.

Thanks.

--
You are receiving this mail because:
You are on the CC list for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug gdb/23555] Segmentation fault on attempt to print warning that getcwd failed

agentzh at gmail dot com
In reply to this post by agentzh at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=23555

Sergio Durigan Junior <sergiodj at redhat dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |ASSIGNED
   Last reconfirmed|                            |2018-08-22
           Assignee|unassigned at sourceware dot org   |sergiodj at redhat dot com
     Ever confirmed|0                           |1

--
You are receiving this mail because:
You are on the CC list for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug gdb/23555] Segmentation fault on attempt to print warning that getcwd failed

agentzh at gmail dot com
In reply to this post by agentzh at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=23555

--- Comment #2 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Sergio Durigan Junior
<[hidden email]>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=7a6dbc2fdb2323c35e981f93236f323e9d7c0b24

commit 7a6dbc2fdb2323c35e981f93236f323e9d7c0b24
Author: Sergio Durigan Junior <[hidden email]>
Date:   Mon Aug 27 18:56:03 2018 -0400

    Update gnulib to current upstream master

    It has been a while since we don't update our gnulib copy against
    their upstream master branch, so I thought I'd propose this patch.  It
    also fixes (at least) one bug reported against GDB:

      https://sourceware.org/bugzilla/show_bug.cgi?id=23558

    The problem reported there is about the replacement of 'getcwd' when
    cross-compiling GDB.  With our current gnulib copy, the mechanism for
    deciding whether to use the system's 'getcwd' or gnulib's version is
    too simplistic and pessimistic, so when cross-compiling we always end
    up using gnulib's version, which has a limitation: it cannot handle
    the situation when the parent directory doesn't have read permissions.

    This has been reported against upstream gnulib and the fix has been
    pushed here:

     
https://git.savannah.gnu.org/cgit/gnulib.git/commit/?id=a96d2e67052c879b1bcc5bc461722beac75fc372

    I regtested this patch on Fedora 28 x86-64, and there were no
    regressions.

    OK?

    gdb/ChangeLog:

    2018-08-29  Sergio Durigan Junior  <[hidden email]>

        PR gdb/23555
        PR gdb/23558
        * gnulib/aclocal.m4: Regenerate.
        * gnulib/config.in: Regenerate.
        * gnulib/configure: Regenerate.
        * gnulib/import/Makefile.am: Update.
        * gnulib/import/Makefile.in: Update.
        * gnulib/import/extra/snippet/_Noreturn.h: Rename to...
        * gnulib/import/_Noreturn.h: ... this.
        * gnulib/import/alloca.in.h: Update.
        * gnulib/import/extra/snippet/arg-nonnull.h: Rename to...
        * gnulib/import/arg-nonnull.h: ... this.
        * gnulib/import/assure.h: Update.
        * gnulib/import/at-func.c: Update.
        * gnulib/import/basename-lgpl.c: Update.
        * gnulib/import/extra/snippet/c++defs.h: Rename to...
        * gnulib/import/c++defs.h: ... this.
        * gnulib/import/canonicalize-lgpl.c: Update.
        * gnulib/import/cdefs.h: Update.
        * gnulib/import/chdir-long.c: Update.
        * gnulib/import/chdir-long.h: Update.
        * gnulib/import/cloexec.c: Update.
        * gnulib/import/cloexec.h: Update.
        * gnulib/import/close.c: Update.
        * gnulib/import/closedir.c: Update.
        * gnulib/import/config.charset: Update.
        * gnulib/import/dirent-private.h: Update.
        * gnulib/import/dirent.in.h: Update.
        * gnulib/import/dirfd.c: Update.
        * gnulib/import/dirname-lgpl.c: Update.
        * gnulib/import/dirname.h: Update.
        * gnulib/import/dosname.h: Update.
        * gnulib/import/dup-safer-flag.c: Update.
        * gnulib/import/dup-safer.c: Update.
        * gnulib/import/dup.c: Update.
        * gnulib/import/dup2.c: Update.
        * gnulib/import/errno.in.h: Update.
        * gnulib/import/error.c: Update.
        * gnulib/import/error.h: Update.
        * gnulib/import/exitfail.c: Update.
        * gnulib/import/exitfail.h: Update.
        * gnulib/import/extra/update-copyright: Update.
        * gnulib/import/fchdir.c: Update.
        * gnulib/import/fcntl.c: Update.
        * gnulib/import/fcntl.in.h: Update.
        * gnulib/import/fd-hook.c: Update.
        * gnulib/import/fd-hook.h: Update.
        * gnulib/import/fd-safer-flag.c: Update.
        * gnulib/import/fd-safer.c: Update.
        * gnulib/import/fdopendir.c: Update.
        * gnulib/import/filename.h: Update.
        * gnulib/import/filenamecat-lgpl.c: Update.
        * gnulib/import/filenamecat.h: Update.
        * gnulib/import/flexmember.h: Update.
        * gnulib/import/float+.h: Update.
        * gnulib/import/float.c: Update.
        * gnulib/import/float.in.h: Update.
        * gnulib/import/fnmatch.c: Update.
        * gnulib/import/fnmatch.in.h: Update.
        * gnulib/import/fnmatch_loop.c: Update.
        * gnulib/import/fpucw.h: Update.
        * gnulib/import/frexp.c: Update.
        * gnulib/import/frexpl.c: Update.
        * gnulib/import/fstat.c: Update.
        * gnulib/import/fstatat.c: Update.
        * gnulib/import/getcwd-lgpl.c: Update.
        * gnulib/import/getcwd.c: Update.
        * gnulib/import/getdtablesize.c: Update.
        * gnulib/import/getlogin_r.c: Update.
        * gnulib/import/getprogname.c: Update.
        * gnulib/import/getprogname.h: Update.
        * gnulib/import/gettext.h: Update.
        * gnulib/import/gettimeofday.c: Update.
        * gnulib/import/glob-libc.h: Update.
        * gnulib/import/glob.c: Update.
        * gnulib/import/glob.in.h: Update.
        * gnulib/import/glob_internal.h: Update.
        * gnulib/import/glob_pattern_p.c: Update.
        * gnulib/import/globfree.c: Update.
        * gnulib/import/hard-locale.c: Update.
        * gnulib/import/hard-locale.h: Update.
        * gnulib/import/intprops.h: Update.
        * gnulib/import/inttypes.in.h: Update.
        * gnulib/import/isnan.c: Update.
        * gnulib/import/isnand-nolibm.h: Update.
        * gnulib/import/isnand.c: Update.
        * gnulib/import/isnanl-nolibm.h: Update.
        * gnulib/import/isnanl.c: Update.
        * gnulib/import/itold.c: Update.
        * gnulib/import/libc-config.h: Update.
        * gnulib/import/limits.in.h: Update.
        * gnulib/import/localcharset.c: Update.
        * gnulib/import/localcharset.h: Update.
        * gnulib/import/localtime-buffer.c: Update.
        * gnulib/import/localtime-buffer.h: Update.
        * gnulib/import/lstat.c: Update.
        * gnulib/import/m4/00gnulib.m4: Update.
        * gnulib/import/m4/__inline.m4: Update.
        * gnulib/import/m4/absolute-header.m4: Update.
        * gnulib/import/m4/alloca.m4: Update.
        * gnulib/import/m4/builtin-expect.m4: Update.
        * gnulib/import/m4/canonicalize.m4: Update.
        * gnulib/import/m4/chdir-long.m4: Update.
        * gnulib/import/m4/close.m4: Update.
        * gnulib/import/m4/closedir.m4: Update.
        * gnulib/import/m4/configmake.m4: Update.
        * gnulib/import/m4/d-ino.m4: Update.
        * gnulib/import/m4/d-type.m4: Update.
        * gnulib/import/m4/dirent_h.m4: Update.
        * gnulib/import/m4/dirfd.m4: Update.
        * gnulib/import/m4/dirname.m4: Update.
        * gnulib/import/m4/double-slash-root.m4: Update.
        * gnulib/import/m4/dup.m4: Update.
        * gnulib/import/m4/dup2.m4: Update.
        * gnulib/import/m4/eealloc.m4: Update.
        * gnulib/import/m4/environ.m4: Update.
        * gnulib/import/m4/errno_h.m4: Update.
        * gnulib/import/m4/error.m4: Update.
        * gnulib/import/m4/exponentd.m4: Update.
        * gnulib/import/m4/exponentl.m4: Update.
        * gnulib/import/m4/extensions.m4: Update.
        * gnulib/import/m4/extern-inline.m4: Update.
        * gnulib/import/m4/fchdir.m4: Update.
        * gnulib/import/m4/fcntl-o.m4: Update.
        * gnulib/import/m4/fcntl.m4: Update.
        * gnulib/import/m4/fcntl_h.m4: Update.
        * gnulib/import/m4/fdopendir.m4: Update.
        * gnulib/import/m4/filenamecat.m4: Update.
        * gnulib/import/m4/flexmember.m4: Update.
        * gnulib/import/m4/float_h.m4: Update.
        * gnulib/import/m4/fnmatch.m4: Update.
        * gnulib/import/m4/fnmatch_h.m4: Update.
        * gnulib/import/m4/fpieee.m4: Update.
        * gnulib/import/m4/frexp.m4: Update.
        * gnulib/import/m4/frexpl.m4: Update.
        * gnulib/import/m4/fstat.m4: Update.
        * gnulib/import/m4/fstatat.m4: Update.
        * gnulib/import/m4/getcwd-abort-bug.m4: Update.
        * gnulib/import/m4/getcwd-path-max.m4: Update.
        * gnulib/import/m4/getcwd.m4: Update.
        * gnulib/import/m4/getdtablesize.m4: Update.
        * gnulib/import/m4/getlogin.m4: Update.
        * gnulib/import/m4/getlogin_r.m4: Update.
        * gnulib/import/m4/getpagesize.m4: Update.
        * gnulib/import/m4/getprogname.m4: Update.
        * gnulib/import/m4/gettimeofday.m4: Update.
        * gnulib/import/m4/glibc21.m4: Update.
        * gnulib/import/m4/glob.m4: Update.
        * gnulib/import/m4/glob_h.m4: Update.
        * gnulib/import/m4/gnulib-cache.m4: Update.
        * gnulib/import/m4/gnulib-common.m4: Update.
        * gnulib/import/m4/gnulib-comp.m4: Update.
        * gnulib/import/m4/gnulib-tool.m4: Update.
        * gnulib/import/m4/hard-locale.m4: Update.
        * gnulib/import/m4/include_next.m4: Update.
        * gnulib/import/m4/inttypes-pri.m4: Update.
        * gnulib/import/m4/inttypes.m4: Update.
        * gnulib/import/m4/isnand.m4: Update.
        * gnulib/import/m4/isnanl.m4: Update.
        * gnulib/import/m4/largefile.m4: Update.
        * gnulib/import/m4/limits-h.m4: Update.
        * gnulib/import/m4/localcharset.m4: Update.
        * gnulib/import/m4/locale-fr.m4: Update.
        * gnulib/import/m4/locale-ja.m4: Update.
        * gnulib/import/m4/locale-zh.m4: Update.
        * gnulib/import/m4/localtime-buffer.m4: Update.
        * gnulib/import/m4/longlong.m4: Update.
        * gnulib/import/m4/lstat.m4: Update.
        * gnulib/import/m4/malloc.m4: Update.
        * gnulib/import/m4/malloca.m4: Update.
        * gnulib/import/m4/math_h.m4: Update.
        * gnulib/import/m4/mbrtowc.m4: Update.
        * gnulib/import/m4/mbsinit.m4: Update.
        * gnulib/import/m4/mbsrtowcs.m4: Update.
        * gnulib/import/m4/mbstate_t.m4: Update.
        * gnulib/import/m4/memchr.m4: Update.
        * gnulib/import/m4/memmem.m4: Update.
        * gnulib/import/m4/mempcpy.m4: Update.
        * gnulib/import/m4/memrchr.m4: Update.
        * gnulib/import/m4/mkdir.m4: Update.
        * gnulib/import/m4/mkstemp.m4: Update.
        * gnulib/import/m4/mmap-anon.m4: Update.
        * gnulib/import/m4/mode_t.m4: Update.
        * gnulib/import/m4/msvc-inval.m4: Update.
        * gnulib/import/m4/msvc-nothrow.m4: Update.
        * gnulib/import/m4/multiarch.m4: Update.
        * gnulib/import/m4/nocrash.m4: Update.
        * gnulib/import/m4/off_t.m4: Update.
        * gnulib/import/m4/onceonly.m4: Update.
        * gnulib/import/m4/open-cloexec.m4: Update.
        * gnulib/import/m4/open.m4: Update.
        * gnulib/import/m4/openat.m4: Update.
        * gnulib/import/m4/opendir.m4: Update.
        * gnulib/import/m4/pathmax.m4: Update.
        * gnulib/import/m4/rawmemchr.m4: Update.
        * gnulib/import/m4/readdir.m4: Update.
        * gnulib/import/m4/readlink.m4: Update.
        * gnulib/import/m4/realloc.m4: Update.
        * gnulib/import/m4/rename.m4: Update.
        * gnulib/import/m4/rewinddir.m4: Update.
        * gnulib/import/m4/rmdir.m4: Update.
        * gnulib/import/m4/save-cwd.m4: Update.
        * gnulib/import/m4/secure_getenv.m4: Update.
        * gnulib/import/m4/setenv.m4: Update.
        * gnulib/import/m4/signal_h.m4: Update.
        * gnulib/import/m4/ssize_t.m4: Update.
        * gnulib/import/m4/stat-time.m4: Update.
        * gnulib/import/m4/stat.m4: Update.
        * gnulib/import/m4/std-gnu11.m4: Update.
        * gnulib/import/m4/stdbool.m4: Update.
        * gnulib/import/m4/stddef_h.m4: Update.
        * gnulib/import/m4/stdint.m4: Update.
        * gnulib/import/m4/stdio_h.m4: Update.
        * gnulib/import/m4/stdlib_h.m4: Update.
        * gnulib/import/m4/strchrnul.m4: Update.
        * gnulib/import/m4/strdup.m4: Update.
        * gnulib/import/m4/strerror.m4: Update.
        * gnulib/import/m4/string_h.m4: Update.
        * gnulib/import/m4/strstr.m4: Update.
        * gnulib/import/m4/strtok_r.m4: Update.
        * gnulib/import/m4/sys_socket_h.m4: Update.
        * gnulib/import/m4/sys_stat_h.m4: Update.
        * gnulib/import/m4/sys_time_h.m4: Update.
        * gnulib/import/m4/sys_types_h.m4: Update.
        * gnulib/import/m4/tempname.m4: Update.
        * gnulib/import/m4/time_h.m4: Update.
        * gnulib/import/m4/unistd-safer.m4: Update.
        * gnulib/import/m4/unistd_h.m4: Update.
        * gnulib/import/m4/warn-on-use.m4: Update.
        * gnulib/import/m4/wchar_h.m4: Update.
        * gnulib/import/m4/wchar_t.m4: Update.
        * gnulib/import/m4/wctype_h.m4: Update.
        * gnulib/import/m4/wint_t.m4: Update.
        * gnulib/import/malloc.c: Update.
        * gnulib/import/malloc/scratch_buffer.h: Update.
        * gnulib/import/malloc/scratch_buffer_grow.c: Update.
        * gnulib/import/malloc/scratch_buffer_grow_preserve.c: Update.
        * gnulib/import/malloc/scratch_buffer_set_array_size.c: Update.
        * gnulib/import/malloca.c: Update.
        * gnulib/import/malloca.h: Update.
        * gnulib/import/malloca.valgrind: Update.
        * gnulib/import/math.in.h: Update.
        * gnulib/import/mbrtowc.c: Update.
        * gnulib/import/mbsinit.c: Update.
        * gnulib/import/mbsrtowcs-impl.h: Update.
        * gnulib/import/mbsrtowcs-state.c: Update.
        * gnulib/import/mbsrtowcs.c: Update.
        * gnulib/import/memchr.c: Update.
        * gnulib/import/memmem.c: Update.
        * gnulib/import/mempcpy.c: Update.
        * gnulib/import/memrchr.c: Update.
        * gnulib/import/mkdir.c: Update.
        * gnulib/import/mkstemp.c: Update.
        * gnulib/import/msvc-inval.c: Update.
        * gnulib/import/msvc-inval.h: Update.
        * gnulib/import/msvc-nothrow.c: Update.
        * gnulib/import/msvc-nothrow.h: Update.
        * gnulib/import/open.c: Update.
        * gnulib/import/openat-die.c: Update.
        * gnulib/import/openat-priv.h: Update.
        * gnulib/import/openat-proc.c: Update.
        * gnulib/import/openat.c: Update.
        * gnulib/import/openat.h: Update.
        * gnulib/import/opendir.c: Update.
        * gnulib/import/pathmax.h: Update.
        * gnulib/import/pipe-safer.c: Update.
        * gnulib/import/rawmemchr.c: Update.
        * gnulib/import/readdir.c: Update.
        * gnulib/import/readlink.c: Update.
        * gnulib/import/realloc.c: Update.
        * gnulib/import/ref-add.sin: Update.
        * gnulib/import/ref-del.sin: Update.
        * gnulib/import/rename.c: Update.
        * gnulib/import/rewinddir.c: Update.
        * gnulib/import/rmdir.c: Update.
        * gnulib/import/same-inode.h: Update.
        * gnulib/import/save-cwd.c: Update.
        * gnulib/import/save-cwd.h: Update.
        * gnulib/import/scratch_buffer.h: Update.
        * gnulib/import/secure_getenv.c: Update.
        * gnulib/import/setenv.c: Update.
        * gnulib/import/signal.in.h: Update.
        * gnulib/import/stat-time.c: Update.
        * gnulib/import/stat-time.h: Update.
        * gnulib/import/stat-w32.c: Update.
        * gnulib/import/stat-w32.h: Update.
        * gnulib/import/stat.c: Update.
        * gnulib/import/stdbool.in.h: Update.
        * gnulib/import/stddef.in.h: Update.
        * gnulib/import/stdint.in.h: Update.
        * gnulib/import/stdio.in.h: Update.
        * gnulib/import/stdlib.in.h: Update.
        * gnulib/import/str-two-way.h: Update.
        * gnulib/import/strchrnul.c: Update.
        * gnulib/import/strdup.c: Update.
        * gnulib/import/streq.h: Update.
        * gnulib/import/strerror-override.c: Update.
        * gnulib/import/strerror-override.h: Update.
        * gnulib/import/strerror.c: Update.
        * gnulib/import/string.in.h: Update.
        * gnulib/import/stripslash.c: Update.
        * gnulib/import/strnlen1.c: Update.
        * gnulib/import/strnlen1.h: Update.
        * gnulib/import/strstr.c: Update.
        * gnulib/import/strtok_r.c: Update.
        * gnulib/import/sys_stat.in.h: Update.
        * gnulib/import/sys_time.in.h: Update.
        * gnulib/import/sys_types.in.h: Update.
        * gnulib/import/tempname.c: Update.
        * gnulib/import/tempname.h: Update.
        * gnulib/import/time.in.h: Update.
        * gnulib/import/unistd--.h: Update.
        * gnulib/import/unistd-safer.h: Update.
        * gnulib/import/unistd.in.h: Update.
        * gnulib/import/unsetenv.c: Update.
        * gnulib/import/verify.h: Update.
        * gnulib/import/extra/snippet/warn-on-use.h: Update.
        * gnulib/import/wchar.in.h: Update.
        * gnulib/import/wctype.in.h: Update.
        * gnulib/import/xalloc-oversized.h: Update.
        * gnulib/update-gnulib.sh (GNULIB_COMMIT_SHA1): Set to
        "53e2c179f26a890fa6685af4b6c1397ee370433b".

--
You are receiving this mail because:
You are on the CC list for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug gdb/23555] Segmentation fault on attempt to print warning that getcwd failed

agentzh at gmail dot com
In reply to this post by agentzh at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=23555

--- Comment #3 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Sergio Durigan Junior
<[hidden email]>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=5e8754f90abbbf832987477eea4ee91a9d2f694c

commit 5e8754f90abbbf832987477eea4ee91a9d2f694c
Author: Sergio Durigan Junior <[hidden email]>
Date:   Mon Sep 10 12:22:59 2018 -0400

    Revert "Update gnulib to current upstream master"

    This reverts commit 7a6dbc2fdb2323c35e981f93236f323e9d7c0b24 ("Update
    gnulib to current upstream master").  It is needed because the gnulib
    update caused problems with people using old GCC compilers (version
    4.8, for example), which support C99 but don't default to using it.
    Unfortunately this broke GDB for these users.  A more detailed report
    of what happened can be found at:

      https://lists.gnu.org/archive/html/bug-gnulib/2018-08/msg00157.html

    The reason for updating our gnulib copy was to fix PR gdb/23558.
    Reverting this patch reintroduces the bug, so in order to fix it I
    will submit a subsequent patch which cherry-picks the fix from gnulib.

    gdb/ChangeLog:
    2018-09-10  Sergio Durigan Junior  <[hidden email]>

        Revert:
        2018-08-29  Sergio Durigan Junior  <[hidden email]>

        PR gdb/23555
        PR gdb/23558
        * gnulib/aclocal.m4: Regenerate.
        * gnulib/config.in: Regenerate.
        * gnulib/configure: Regenerate.
        * gnulib/import/Makefile.am: Update.
        * gnulib/import/Makefile.in: Update.
        * gnulib/import/extra/snippet/_Noreturn.h: Rename to...
        * gnulib/import/_Noreturn.h: ... this.
        * gnulib/import/alloca.in.h: Update.
        * gnulib/import/extra/snippet/arg-nonnull.h: Rename to...
        * gnulib/import/arg-nonnull.h: ... this.
        * gnulib/import/assure.h: Update.
        * gnulib/import/at-func.c: Update.
        * gnulib/import/basename-lgpl.c: Update.
        * gnulib/import/extra/snippet/c++defs.h: Rename to...
        * gnulib/import/c++defs.h: ... this.
        * gnulib/import/canonicalize-lgpl.c: Update.
        * gnulib/import/cdefs.h: Update.
        * gnulib/import/chdir-long.c: Update.
        * gnulib/import/chdir-long.h: Update.
        * gnulib/import/cloexec.c: Update.
        * gnulib/import/cloexec.h: Update.
        * gnulib/import/close.c: Update.
        * gnulib/import/closedir.c: Update.
        * gnulib/import/config.charset: Update.
        * gnulib/import/dirent-private.h: Update.
        * gnulib/import/dirent.in.h: Update.
        * gnulib/import/dirfd.c: Update.
        * gnulib/import/dirname-lgpl.c: Update.
        * gnulib/import/dirname.h: Update.
        * gnulib/import/dosname.h: Update.
        * gnulib/import/dup-safer-flag.c: Update.
        * gnulib/import/dup-safer.c: Update.
        * gnulib/import/dup.c: Update.
        * gnulib/import/dup2.c: Update.
        * gnulib/import/errno.in.h: Update.
        * gnulib/import/error.c: Update.
        * gnulib/import/error.h: Update.
        * gnulib/import/exitfail.c: Update.
        * gnulib/import/exitfail.h: Update.
        * gnulib/import/extra/update-copyright: Update.
        * gnulib/import/fchdir.c: Update.
        * gnulib/import/fcntl.c: Update.
        * gnulib/import/fcntl.in.h: Update.
        * gnulib/import/fd-hook.c: Update.
        * gnulib/import/fd-hook.h: Update.
        * gnulib/import/fd-safer-flag.c: Update.
        * gnulib/import/fd-safer.c: Update.
        * gnulib/import/fdopendir.c: Update.
        * gnulib/import/filename.h: Update.
        * gnulib/import/filenamecat-lgpl.c: Update.
        * gnulib/import/filenamecat.h: Update.
        * gnulib/import/flexmember.h: Update.
        * gnulib/import/float+.h: Update.
        * gnulib/import/float.c: Update.
        * gnulib/import/float.in.h: Update.
        * gnulib/import/fnmatch.c: Update.
        * gnulib/import/fnmatch.in.h: Update.
        * gnulib/import/fnmatch_loop.c: Update.
        * gnulib/import/fpucw.h: Update.
        * gnulib/import/frexp.c: Update.
        * gnulib/import/frexpl.c: Update.
        * gnulib/import/fstat.c: Update.
        * gnulib/import/fstatat.c: Update.
        * gnulib/import/getcwd-lgpl.c: Update.
        * gnulib/import/getcwd.c: Update.
        * gnulib/import/getdtablesize.c: Update.
        * gnulib/import/getlogin_r.c: Update.
        * gnulib/import/getprogname.c: Update.
        * gnulib/import/getprogname.h: Update.
        * gnulib/import/gettext.h: Update.
        * gnulib/import/gettimeofday.c: Update.
        * gnulib/import/glob-libc.h: Update.
        * gnulib/import/glob.c: Update.
        * gnulib/import/glob.in.h: Update.
        * gnulib/import/glob_internal.h: Update.
        * gnulib/import/glob_pattern_p.c: Update.
        * gnulib/import/globfree.c: Update.
        * gnulib/import/hard-locale.c: Update.
        * gnulib/import/hard-locale.h: Update.
        * gnulib/import/intprops.h: Update.
        * gnulib/import/inttypes.in.h: Update.
        * gnulib/import/isnan.c: Update.
        * gnulib/import/isnand-nolibm.h: Update.
        * gnulib/import/isnand.c: Update.
        * gnulib/import/isnanl-nolibm.h: Update.
        * gnulib/import/isnanl.c: Update.
        * gnulib/import/itold.c: Update.
        * gnulib/import/libc-config.h: Update.
        * gnulib/import/limits.in.h: Update.
        * gnulib/import/localcharset.c: Update.
        * gnulib/import/localcharset.h: Update.
        * gnulib/import/localtime-buffer.c: Update.
        * gnulib/import/localtime-buffer.h: Update.
        * gnulib/import/lstat.c: Update.
        * gnulib/import/m4/00gnulib.m4: Update.
        * gnulib/import/m4/__inline.m4: Update.
        * gnulib/import/m4/absolute-header.m4: Update.
        * gnulib/import/m4/alloca.m4: Update.
        * gnulib/import/m4/builtin-expect.m4: Update.
        * gnulib/import/m4/canonicalize.m4: Update.
        * gnulib/import/m4/chdir-long.m4: Update.
        * gnulib/import/m4/close.m4: Update.
        * gnulib/import/m4/closedir.m4: Update.
        * gnulib/import/m4/configmake.m4: Update.
        * gnulib/import/m4/d-ino.m4: Update.
        * gnulib/import/m4/d-type.m4: Update.
        * gnulib/import/m4/dirent_h.m4: Update.
        * gnulib/import/m4/dirfd.m4: Update.
        * gnulib/import/m4/dirname.m4: Update.
        * gnulib/import/m4/double-slash-root.m4: Update.
        * gnulib/import/m4/dup.m4: Update.
        * gnulib/import/m4/dup2.m4: Update.
        * gnulib/import/m4/eealloc.m4: Update.
        * gnulib/import/m4/environ.m4: Update.
        * gnulib/import/m4/errno_h.m4: Update.
        * gnulib/import/m4/error.m4: Update.
        * gnulib/import/m4/exponentd.m4: Update.
        * gnulib/import/m4/exponentl.m4: Update.
        * gnulib/import/m4/extensions.m4: Update.
        * gnulib/import/m4/extern-inline.m4: Update.
        * gnulib/import/m4/fchdir.m4: Update.
        * gnulib/import/m4/fcntl-o.m4: Update.
        * gnulib/import/m4/fcntl.m4: Update.
        * gnulib/import/m4/fcntl_h.m4: Update.
        * gnulib/import/m4/fdopendir.m4: Update.
        * gnulib/import/m4/filenamecat.m4: Update.
        * gnulib/import/m4/flexmember.m4: Update.
        * gnulib/import/m4/float_h.m4: Update.
        * gnulib/import/m4/fnmatch.m4: Update.
        * gnulib/import/m4/fnmatch_h.m4: Update.
        * gnulib/import/m4/fpieee.m4: Update.
        * gnulib/import/m4/frexp.m4: Update.
        * gnulib/import/m4/frexpl.m4: Update.
        * gnulib/import/m4/fstat.m4: Update.
        * gnulib/import/m4/fstatat.m4: Update.
        * gnulib/import/m4/getcwd-abort-bug.m4: Update.
        * gnulib/import/m4/getcwd-path-max.m4: Update.
        * gnulib/import/m4/getcwd.m4: Update.
        * gnulib/import/m4/getdtablesize.m4: Update.
        * gnulib/import/m4/getlogin.m4: Update.
        * gnulib/import/m4/getlogin_r.m4: Update.
        * gnulib/import/m4/getpagesize.m4: Update.
        * gnulib/import/m4/getprogname.m4: Update.
        * gnulib/import/m4/gettimeofday.m4: Update.
        * gnulib/import/m4/glibc21.m4: Update.
        * gnulib/import/m4/glob.m4: Update.
        * gnulib/import/m4/glob_h.m4: Update.
        * gnulib/import/m4/gnulib-cache.m4: Update.
        * gnulib/import/m4/gnulib-common.m4: Update.
        * gnulib/import/m4/gnulib-comp.m4: Update.
        * gnulib/import/m4/gnulib-tool.m4: Update.
        * gnulib/import/m4/hard-locale.m4: Update.
        * gnulib/import/m4/include_next.m4: Update.
        * gnulib/import/m4/inttypes-pri.m4: Update.
        * gnulib/import/m4/inttypes.m4: Update.
        * gnulib/import/m4/isnand.m4: Update.
        * gnulib/import/m4/isnanl.m4: Update.
        * gnulib/import/m4/largefile.m4: Update.
        * gnulib/import/m4/limits-h.m4: Update.
        * gnulib/import/m4/localcharset.m4: Update.
        * gnulib/import/m4/locale-fr.m4: Update.
        * gnulib/import/m4/locale-ja.m4: Update.
        * gnulib/import/m4/locale-zh.m4: Update.
        * gnulib/import/m4/localtime-buffer.m4: Update.
        * gnulib/import/m4/longlong.m4: Update.
        * gnulib/import/m4/lstat.m4: Update.
        * gnulib/import/m4/malloc.m4: Update.
        * gnulib/import/m4/malloca.m4: Update.
        * gnulib/import/m4/math_h.m4: Update.
        * gnulib/import/m4/mbrtowc.m4: Update.
        * gnulib/import/m4/mbsinit.m4: Update.
        * gnulib/import/m4/mbsrtowcs.m4: Update.
        * gnulib/import/m4/mbstate_t.m4: Update.
        * gnulib/import/m4/memchr.m4: Update.
        * gnulib/import/m4/memmem.m4: Update.
        * gnulib/import/m4/mempcpy.m4: Update.
        * gnulib/import/m4/memrchr.m4: Update.
        * gnulib/import/m4/mkdir.m4: Update.
        * gnulib/import/m4/mkstemp.m4: Update.
        * gnulib/import/m4/mmap-anon.m4: Update.
        * gnulib/import/m4/mode_t.m4: Update.
        * gnulib/import/m4/msvc-inval.m4: Update.
        * gnulib/import/m4/msvc-nothrow.m4: Update.
        * gnulib/import/m4/multiarch.m4: Update.
        * gnulib/import/m4/nocrash.m4: Update.
        * gnulib/import/m4/off_t.m4: Update.
        * gnulib/import/m4/onceonly.m4: Update.
        * gnulib/import/m4/open-cloexec.m4: Update.
        * gnulib/import/m4/open.m4: Update.
        * gnulib/import/m4/openat.m4: Update.
        * gnulib/import/m4/opendir.m4: Update.
        * gnulib/import/m4/pathmax.m4: Update.
        * gnulib/import/m4/rawmemchr.m4: Update.
        * gnulib/import/m4/readdir.m4: Update.
        * gnulib/import/m4/readlink.m4: Update.
        * gnulib/import/m4/realloc.m4: Update.
        * gnulib/import/m4/rename.m4: Update.
        * gnulib/import/m4/rewinddir.m4: Update.
        * gnulib/import/m4/rmdir.m4: Update.
        * gnulib/import/m4/save-cwd.m4: Update.
        * gnulib/import/m4/secure_getenv.m4: Update.
        * gnulib/import/m4/setenv.m4: Update.
        * gnulib/import/m4/signal_h.m4: Update.
        * gnulib/import/m4/ssize_t.m4: Update.
        * gnulib/import/m4/stat-time.m4: Update.
        * gnulib/import/m4/stat.m4: Update.
        * gnulib/import/m4/std-gnu11.m4: Update.
        * gnulib/import/m4/stdbool.m4: Update.
        * gnulib/import/m4/stddef_h.m4: Update.
        * gnulib/import/m4/stdint.m4: Update.
        * gnulib/import/m4/stdio_h.m4: Update.
        * gnulib/import/m4/stdlib_h.m4: Update.
        * gnulib/import/m4/strchrnul.m4: Update.
        * gnulib/import/m4/strdup.m4: Update.
        * gnulib/import/m4/strerror.m4: Update.
        * gnulib/import/m4/string_h.m4: Update.
        * gnulib/import/m4/strstr.m4: Update.
        * gnulib/import/m4/strtok_r.m4: Update.
        * gnulib/import/m4/sys_socket_h.m4: Update.
        * gnulib/import/m4/sys_stat_h.m4: Update.
        * gnulib/import/m4/sys_time_h.m4: Update.
        * gnulib/import/m4/sys_types_h.m4: Update.
        * gnulib/import/m4/tempname.m4: Update.
        * gnulib/import/m4/time_h.m4: Update.
        * gnulib/import/m4/unistd-safer.m4: Update.
        * gnulib/import/m4/unistd_h.m4: Update.
        * gnulib/import/m4/warn-on-use.m4: Update.
        * gnulib/import/m4/wchar_h.m4: Update.
        * gnulib/import/m4/wchar_t.m4: Update.
        * gnulib/import/m4/wctype_h.m4: Update.
        * gnulib/import/m4/wint_t.m4: Update.
        * gnulib/import/malloc.c: Update.
        * gnulib/import/malloc/scratch_buffer.h: Update.
        * gnulib/import/malloc/scratch_buffer_grow.c: Update.
        * gnulib/import/malloc/scratch_buffer_grow_preserve.c: Update.
        * gnulib/import/malloc/scratch_buffer_set_array_size.c: Update.
        * gnulib/import/malloca.c: Update.
        * gnulib/import/malloca.h: Update.
        * gnulib/import/malloca.valgrind: Update.
        * gnulib/import/math.in.h: Update.
        * gnulib/import/mbrtowc.c: Update.
        * gnulib/import/mbsinit.c: Update.
        * gnulib/import/mbsrtowcs-impl.h: Update.
        * gnulib/import/mbsrtowcs-state.c: Update.
        * gnulib/import/mbsrtowcs.c: Update.
        * gnulib/import/memchr.c: Update.
        * gnulib/import/memmem.c: Update.
        * gnulib/import/mempcpy.c: Update.
        * gnulib/import/memrchr.c: Update.
        * gnulib/import/mkdir.c: Update.
        * gnulib/import/mkstemp.c: Update.
        * gnulib/import/msvc-inval.c: Update.
        * gnulib/import/msvc-inval.h: Update.
        * gnulib/import/msvc-nothrow.c: Update.
        * gnulib/import/msvc-nothrow.h: Update.
        * gnulib/import/open.c: Update.
        * gnulib/import/openat-die.c: Update.
        * gnulib/import/openat-priv.h: Update.
        * gnulib/import/openat-proc.c: Update.
        * gnulib/import/openat.c: Update.
        * gnulib/import/openat.h: Update.
        * gnulib/import/opendir.c: Update.
        * gnulib/import/pathmax.h: Update.
        * gnulib/import/pipe-safer.c: Update.
        * gnulib/import/rawmemchr.c: Update.
        * gnulib/import/readdir.c: Update.
        * gnulib/import/readlink.c: Update.
        * gnulib/import/realloc.c: Update.
        * gnulib/import/ref-add.sin: Update.
        * gnulib/import/ref-del.sin: Update.
        * gnulib/import/rename.c: Update.
        * gnulib/import/rewinddir.c: Update.
        * gnulib/import/rmdir.c: Update.
        * gnulib/import/same-inode.h: Update.
        * gnulib/import/save-cwd.c: Update.
        * gnulib/import/save-cwd.h: Update.
        * gnulib/import/scratch_buffer.h: Update.
        * gnulib/import/secure_getenv.c: Update.
        * gnulib/import/setenv.c: Update.
        * gnulib/import/signal.in.h: Update.
        * gnulib/import/stat-time.c: Update.
        * gnulib/import/stat-time.h: Update.
        * gnulib/import/stat-w32.c: Update.
        * gnulib/import/stat-w32.h: Update.
        * gnulib/import/stat.c: Update.
        * gnulib/import/stdbool.in.h: Update.
        * gnulib/import/stddef.in.h: Update.
        * gnulib/import/stdint.in.h: Update.
        * gnulib/import/stdio.in.h: Update.
        * gnulib/import/stdlib.in.h: Update.
        * gnulib/import/str-two-way.h: Update.
        * gnulib/import/strchrnul.c: Update.
        * gnulib/import/strdup.c: Update.
        * gnulib/import/streq.h: Update.
        * gnulib/import/strerror-override.c: Update.
        * gnulib/import/strerror-override.h: Update.
        * gnulib/import/strerror.c: Update.
        * gnulib/import/string.in.h: Update.
        * gnulib/import/stripslash.c: Update.
        * gnulib/import/strnlen1.c: Update.
        * gnulib/import/strnlen1.h: Update.
        * gnulib/import/strstr.c: Update.
        * gnulib/import/strtok_r.c: Update.
        * gnulib/import/sys_stat.in.h: Update.
        * gnulib/import/sys_time.in.h: Update.
        * gnulib/import/sys_types.in.h: Update.
        * gnulib/import/tempname.c: Update.
        * gnulib/import/tempname.h: Update.
        * gnulib/import/time.in.h: Update.
        * gnulib/import/unistd--.h: Update.
        * gnulib/import/unistd-safer.h: Update.
        * gnulib/import/unistd.in.h: Update.
        * gnulib/import/unsetenv.c: Update.
        * gnulib/import/verify.h: Update.
        * gnulib/import/extra/snippet/warn-on-use.h: Update.
        * gnulib/import/wchar.in.h: Update.
        * gnulib/import/wctype.in.h: Update.
        * gnulib/import/xalloc-oversized.h: Update.
        * gnulib/update-gnulib.sh (GNULIB_COMMIT_SHA1): Set to
        "53e2c179f26a890fa6685af4b6c1397ee370433b".

--
You are receiving this mail because:
You are on the CC list for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug gdb/23555] Segmentation fault on attempt to print warning that getcwd failed

agentzh at gmail dot com
In reply to this post by agentzh at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=23555

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Sergio Durigan Junior
<[hidden email]>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=e2fc52e745757a11f7a4a256984cabbe5474f55a

commit e2fc52e745757a11f7a4a256984cabbe5474f55a
Author: Sergio Durigan Junior <[hidden email]>
Date:   Mon Sep 10 12:52:04 2018 -0400

    Fix PR gdb/23558: Use system's 'getcwd' when cross-compiling GDB

    This is a backport of a gnulib fix for the following bug:

      https://sourceware.org/bugzilla/show_bug.cgi?id=23558

    The problem reported there is about the replacement of 'getcwd' when
    cross-compiling GDB.  With our current gnulib copy, the mechanism for
    deciding whether to use the system's 'getcwd' or gnulib's version is
    too simplistic and pessimistic, so when cross-compiling we always end
    up using gnulib's version, which has a limitation: it cannot handle
    the situation when the parent directory doesn't have read permissions.

    The solution is to backport the following gnulib commit:

      commit a96d2e67052c879b1bcc5bc461722beac75fc372
      Author: Bruno Haible <[hidden email]>
      Date:   Thu Aug 23 21:13:19 2018 +0200

          getcwd: Add cross-compilation guesses.

    gdb/ChangeLog:
    2018-09-10  Sergio Durigan Junior  <[hidden email]>

        PR gdb/23555
        PR gdb/23558
        * gnulib/import/m4/getcwd-path-max.m4: Add cross-compilation
        guesses.

--
You are receiving this mail because:
You are on the CC list for the bug.
Reply | Threaded
Open this post in threaded view
|

[Bug gdb/23555] Segmentation fault on attempt to print warning that getcwd failed

agentzh at gmail dot com
In reply to this post by agentzh at gmail dot com
https://sourceware.org/bugzilla/show_bug.cgi?id=23555

--- Comment #5 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Tom Tromey <[hidden email]>:

https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=20f0d60db4fb5083779c4c9182bbc692f7d2bac5

commit 20f0d60db4fb5083779c4c9182bbc692f7d2bac5
Author: Tom Tromey <[hidden email]>
Date:   Fri Oct 5 14:54:35 2018 -0600

    Avoid crash when calling warning too early

    I noticed that if you pass the name of an existing file (not a
    directory) as the argument to --data-directory, gdb will crash:

        $ ./gdb -nx  --data-directory  ./gdb
        ../../binutils-gdb/gdb/target.c:590:56: runtime error: member call on
null pointer of type 'struct target_ops'

    This was later reported as PR gdb/23838.

    This happens because warning ends up calling
    target_supports_terminal_ours, which calls current_top_target, which
    returns nullptr this early.

    This fixes the problem by handling this case specially in
    target_supports_terminal_ours.  I also changed
    target_supports_terminal_ours to return bool.

    gdb/ChangeLog
    2018-11-08  Tom Tromey  <[hidden email]>

        PR gdb/23555:
        PR gdb/23838:
        * target.h (target_supports_terminal_ours): Return bool.
        * target.c (target_supports_terminal_ours): Handle case where
        current_top_target returns nullptr.  Return bool.

    gdb/testsuite/ChangeLog
    2018-11-08  Tom Tromey  <[hidden email]>

        PR gdb/23555:
        PR gdb/23838:
        * gdb.base/warning.exp: New file.

--
You are receiving this mail because:
You are on the CC list for the bug.