This is the mail archive of the binutils@sources.redhat.com mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

PATCH: Fix thinko parsing IQ2000 ignored arguments array


Hi Guys,

  I am applying the patch below to fix a stupid little bug that I
  introduced when I tidied up the IQ2000 specific GAS code.  The
  ignored_arguments array was being walked one character at a time
  rather than one pointer at a time, which eventually resulted in a
  seg fault due to an illegal memory access.

Cheers
  Nick

gas/ChangeLog
2005-01-12  Nick Clifton  <nickc@redhat.com>

	* config/tc-iq2000.c (s_iq2000_set): Fix thinko parsing
	ignored_arguments array.

Index: gas/config/tc-iq2000.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-iq2000.c,v
retrieving revision 1.5
diff -c -3 -p -r1.5 tc-iq2000.c
*** gas/config/tc-iq2000.c	24 Nov 2004 13:23:41 -0000	1.5
--- gas/config/tc-iq2000.c	12 Jan 2005 10:54:21 -0000
*************** s_iq2000_set (int x ATTRIBUTE_UNUSED)
*** 686,692 ****
        "nobopt",
        NULL
      };
!   const char * ignored;
    char *name = input_line_pointer, ch;
    char *save_ILP = input_line_pointer;
  
--- 686,692 ----
        "nobopt",
        NULL
      };
!   const char ** ignored;
    char *name = input_line_pointer, ch;
    char *save_ILP = input_line_pointer;
  
*************** s_iq2000_set (int x ATTRIBUTE_UNUSED)
*** 695,704 ****
    ch = *input_line_pointer;
    *input_line_pointer = '\0';
  
!   for (ignored = ignored_arguments[0]; ignored; ignored ++)
!     if (strcmp (ignored, name) == 0)
        break;
!   if (ignored == NULL)
      {
        /* We'd like to be able to use .set symbol, expn */
        input_line_pointer = save_ILP;
--- 695,704 ----
    ch = *input_line_pointer;
    *input_line_pointer = '\0';
  
!   for (ignored = ignored_arguments; * ignored; ignored ++)
!     if (strcmp (* ignored, name) == 0)
        break;
!   if (* ignored == NULL)
      {
        /* We'd like to be able to use .set symbol, expn */
        input_line_pointer = save_ILP;
  


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]