aboutsummaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2000-06-20 12:33:21 +0000
committerAlan Modra <amodra@gmail.com>2000-06-20 12:33:21 +0000
commit2ab47eed68c82a9a6d055ba3f49ca6a8a1dd2575 (patch)
treef16dbfc601991f71c0177a7027479b3d3e3f9247 /binutils
parentb305ef96a167be657a95d273db6945fe7597e937 (diff)
downloadgdb-2ab47eed68c82a9a6d055ba3f49ca6a8a1dd2575.zip
gdb-2ab47eed68c82a9a6d055ba3f49ca6a8a1dd2575.tar.gz
gdb-2ab47eed68c82a9a6d055ba3f49ca6a8a1dd2575.tar.bz2
Correct pointer comparisons relying on NULL less than any other pointer.
Alexander Aganichev's fix for ieee.c
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog11
-rw-r--r--binutils/ar.c6
-rw-r--r--binutils/bucomm.c2
-rw-r--r--binutils/ieee.c8
4 files changed, 19 insertions, 8 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog
index 6bb13ff..ce7c8f5 100644
--- a/binutils/ChangeLog
+++ b/binutils/ChangeLog
@@ -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.
diff --git a/binutils/ar.c b/binutils/ar.c
index cc8b77a..650092f 100644
--- a/binutils/ar.c
+++ b/binutils/ar.c
@@ -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;
diff --git a/binutils/bucomm.c b/binutils/bucomm.c
index 76ffa60..86c327f 100644
--- a/binutils/bucomm.c
+++ b/binutils/bucomm.c
@@ -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;
diff --git a/binutils/ieee.c b/binutils/ieee.c
index 27409cc..44dd64f 100644
--- a/binutils/ieee.c
+++ b/binutils/ieee.c
@@ -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)