X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=binutils%2Fsysdump.c;h=8387e711f836d7fe2236896d496e7578d12ab260;hb=4cebb668fe6ee94269a0d7eff61ff7a81a8dfa64;hp=2b38b2f78b49d763833fc424c4cc818ad460635e;hpb=b43b5d5f768ed7a7a150d78c9fda0c194a11497d;p=external%2Fbinutils.git diff --git a/binutils/sysdump.c b/binutils/sysdump.c index 2b38b2f..8387e71 100644 --- a/binutils/sysdump.c +++ b/binutils/sysdump.c @@ -1,12 +1,12 @@ /* Sysroff object format dumper. - Copyright 1994, 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2005 + Copyright 1994, 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2007 Free Software Foundation, Inc. This file is part of GNU Binutils. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or + the Free Software Foundation; either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, @@ -25,13 +25,12 @@ This program reads a SYSROFF object file and prints it in an almost human readable form to stdout. */ +#include "sysdep.h" #include "bfd.h" -#include "bucomm.h" #include "safe-ctype.h" - -#include #include "libiberty.h" #include "getopt.h" +#include "bucomm.h" #include "sysroff.h" static int dump = 1; @@ -120,8 +119,15 @@ fillup (unsigned char *ptr) int sum; int i; - size = getc (file) - 2; - fread (ptr, 1, size, file); + size = getc (file); + if (size == EOF + || size <= 2) + return 0; + + size -= 2; + if (fread (ptr, size, 1, file) != 1) + return 0; + sum = code + size + 2; for (i = 0; i < size; i++) @@ -133,7 +139,7 @@ fillup (unsigned char *ptr) if (dump) dh (ptr, size); - return size - 1; + return size; } static barray @@ -644,7 +650,7 @@ show_usage (FILE *file, int status) -h --help Display this information\n\ -v --version Print the program's version number\n")); - if (status == 0) + if (REPORT_BUGS_TO[0] && status == 0) fprintf (file, _("Report bugs to %s\n"), REPORT_BUGS_TO); exit (status); } @@ -673,6 +679,8 @@ main (int ac, char **av) program_name = av[0]; xmalloc_set_program_name (program_name); + expandargv (&ac, &av); + while ((opt = getopt_long (ac, av, "HhVv", long_options, (int *) NULL)) != EOF) { switch (opt)