Correct pointer comparisons relying on NULL less than any other pointer.
Alexander Aganichev's fix for ieee.c
This commit is contained in:
parent
b305ef96a1
commit
2ab47eed68
10 changed files with 42 additions and 14 deletions
|
@ -1,3 +1,10 @@
|
|||
2000-06-20 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* archive.c (normalize): Correct pointer comparison when checking
|
||||
for backslashes.
|
||||
(bfd_bsd_truncate_arname): Likewise.
|
||||
(bfd_gnu_truncate_arname): Likewise.
|
||||
|
||||
2000-06-20 Ulf Carlsson <ulfc@engr.sgi.com>
|
||||
|
||||
* elf-bfd.h (struct elf_obj_tdata): Define per BFD Irix 5 virtual
|
||||
|
|
|
@ -1188,7 +1188,7 @@ normalize (abfd, file)
|
|||
{
|
||||
/* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
|
||||
char *bslash = strrchr (file, '\\');
|
||||
if (bslash > filename)
|
||||
if (filename == NULL || (bslash != NULL && bslash > filename))
|
||||
filename = bslash;
|
||||
if (filename == NULL && file[0] != '\0' && file[1] == ':')
|
||||
filename = file + 1;
|
||||
|
@ -1581,7 +1581,7 @@ bfd_bsd_truncate_arname (abfd, pathname, arhdr)
|
|||
{
|
||||
/* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
|
||||
char *bslash = strrchr (pathname, '\\');
|
||||
if (bslash > filename)
|
||||
if (filename == NULL || (bslash != NULL && bslash > filename))
|
||||
filename = bslash;
|
||||
if (filename == NULL && pathname[0] != '\0' && pathname[1] == ':')
|
||||
filename = pathname + 1;
|
||||
|
@ -1632,7 +1632,7 @@ bfd_gnu_truncate_arname (abfd, pathname, arhdr)
|
|||
{
|
||||
/* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
|
||||
char *bslash = strrchr (pathname, '\\');
|
||||
if (bslash > filename)
|
||||
if (filename == NULL || (bslash != NULL && bslash > filename))
|
||||
filename = bslash;
|
||||
if (filename == NULL && pathname[0] != '\0' && pathname[1] == ':')
|
||||
filename = pathname + 1;
|
||||
|
|
|
@ -1,3 +1,14 @@
|
|||
2000-06-20 Alexander Aganichev <AAganichev@hypercom.com>
|
||||
|
||||
* ar.c (normalize): Correct pointer comparison when checking for
|
||||
backslashes.
|
||||
(main): Likewise.
|
||||
* bucomm.c (make_tempname): Likewise.
|
||||
|
||||
* ieee.c (ieee_start_compilation_unit): Correct pointer comparison
|
||||
and search for backslashes in the original pathname.
|
||||
(ieee_add_bb11): Likewise.
|
||||
|
||||
2000-06-18 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* ar.c (print_contents): Improve verbose message.
|
||||
|
|
|
@ -307,10 +307,10 @@ normalize (file, abfd)
|
|||
{
|
||||
/* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
|
||||
char *bslash = strrchr (file, '\\');
|
||||
if (bslash > filename)
|
||||
if (filename == NULL || (bslash != NULL && bslash > filename))
|
||||
filename = bslash;
|
||||
if (filename == NULL && file[0] != '\0' && file[1] == ':')
|
||||
filename = file + 1;
|
||||
filename = file + 1;
|
||||
}
|
||||
#endif
|
||||
if (filename != (char *) NULL)
|
||||
|
@ -392,7 +392,7 @@ main (argc, argv)
|
|||
{
|
||||
/* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
|
||||
char *bslash = strrchr (program_name, '\\');
|
||||
if (bslash > temp)
|
||||
if (temp == NULL || (bslash != NULL && bslash > temp))
|
||||
temp = bslash;
|
||||
if (temp == NULL && program_name[0] != '\0' && program_name[1] == ':')
|
||||
temp = program_name + 1;
|
||||
|
|
|
@ -219,7 +219,7 @@ make_tempname (filename)
|
|||
{
|
||||
/* We could have foo/bar\\baz, or foo\\bar, or d:bar. */
|
||||
char *bslash = strrchr (filename, '\\');
|
||||
if (bslash > slash)
|
||||
if (slash == NULL || (bslash != NULL && bslash > slash))
|
||||
slash = bslash;
|
||||
if (slash == NULL && filename[0] != '\0' && filename[1] == ':')
|
||||
slash = filename + 1;
|
||||
|
|
|
@ -4940,8 +4940,8 @@ ieee_start_compilation_unit (p, filename)
|
|||
info->filename = filename;
|
||||
modname = strrchr (filename, '/');
|
||||
/* We could have a mixed forward/back slash case. */
|
||||
backslash = strrchr (modname, '\\');
|
||||
if (backslash > modname)
|
||||
backslash = strrchr (filename, '\\');
|
||||
if (modname == NULL || (backslash != NULL && backslash > modname))
|
||||
modname = backslash;
|
||||
|
||||
if (modname != NULL)
|
||||
|
@ -5206,8 +5206,8 @@ ieee_add_bb11 (info, sec, low, high)
|
|||
/* Start the enclosing BB10 block. */
|
||||
filename = bfd_get_filename (info->abfd);
|
||||
modname = strrchr (filename, '/');
|
||||
backslash = strrchr (modname, '\\');
|
||||
if (backslash > modname)
|
||||
backslash = strrchr (filename, '\\');
|
||||
if (modname == NULL || (backslash != NULL && backslash > modname))
|
||||
modname = backslash;
|
||||
|
||||
if (modname != NULL)
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2000-06-20 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* source.c (annotate_source): Correct pointer comparison when
|
||||
checking for backslashes.
|
||||
|
||||
2000-06-13 H.J. Lu <hjl@gnu.org>
|
||||
|
||||
* configure: Regenerate.
|
||||
|
|
|
@ -116,7 +116,7 @@ DEFUN (annotate_source, (sf, max_width, annote, arg),
|
|||
#ifdef HAVE_DOS_BASED_FILE_SYSTEM
|
||||
{
|
||||
char *bslash = strrchr (sf->name, '\\');
|
||||
if (bslash > name_only)
|
||||
if (name_only == NULL || (bslash != NULL && bslash > name_only))
|
||||
name_only = bslash;
|
||||
if (name_only == NULL && sf->name[0] != '\0' && sf->name[1] == ':')
|
||||
name_only = (char *)sf->name + 1;
|
||||
|
@ -174,7 +174,7 @@ DEFUN (annotate_source, (sf, max_width, annote, arg),
|
|||
#ifdef HAVE_DOS_BASED_FILE_SYSTEM
|
||||
{
|
||||
char *bslash = strrchr (sf->name, '\\');
|
||||
if (bslash > filename)
|
||||
if (filename == NULL || (bslash != NULL && bslash > filename))
|
||||
filename = bslash;
|
||||
if (filename == NULL && sf->name[0] != '\0' && sf->name[1] == ':')
|
||||
filename = sf->name + 1;
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2000-06-20 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* ldmain.c (set_scripts_dir): Correct pointer comparison when
|
||||
checking for backslashes.
|
||||
|
||||
2000-06-19 Alan Modra <alan@linuxcare.com.au>
|
||||
|
||||
* NEWS: Move entries not in 2.10 above "Changes in version 2.10".
|
||||
|
|
|
@ -575,7 +575,7 @@ set_scripts_dir ()
|
|||
{
|
||||
/* We could have \foo\bar, or /foo\bar. */
|
||||
char *bslash = strrchr (program_name, '\\');
|
||||
if (bslash > end)
|
||||
if (end == NULL || (bslash != NULL && bslash > end))
|
||||
end = bslash;
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue