From 2ab47eed68c82a9a6d055ba3f49ca6a8a1dd2575 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Tue, 20 Jun 2000 12:33:21 +0000 Subject: Correct pointer comparisons relying on NULL less than any other pointer. Alexander Aganichev's fix for ieee.c --- binutils/ChangeLog | 11 +++++++++++ binutils/ar.c | 6 +++--- binutils/bucomm.c | 2 +- binutils/ieee.c | 8 ++++---- 4 files changed, 19 insertions(+), 8 deletions(-) (limited to 'binutils') 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 + + * 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 * 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) -- cgit v1.1