Correct pointer comparisons relying on NULL less than any other pointer.

Alexander Aganichev's fix for ieee.c
This commit is contained in:
Alan Modra 2000-06-20 12:33:21 +00:00
parent b305ef96a1
commit 2ab47eed68
10 changed files with 42 additions and 14 deletions

View File

@ -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

View File

@ -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;

View File

@ -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.

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -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.

View File

@ -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;

View File

@ -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".

View File

@ -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