stdargs.h bug? V4.0F, PK#3

From: Narendra Ra\[a\]vi <narendra_at_spiff.hr.att.com>
Date: Mon, 30 Oct 2000 10:58:45 -0500

Hi Managers,

Have any of you got complaints that the C library implementation of
stdarg.h? Is there a patch for this problem in the Standard C library?

I have the following program (straight from the man page for stdarg) that
dumps core at the fourth argument.

#include <stdarg.h>
#include <iostream.h>

#define MAXargS 100
/*
** execl is called by
** execl(file, arg1, arg2, . . . , (char *) 0);
*/
void
execit(char * file, ...)
{ va_list ap;
  char *args[MAXargS];
  int argno = 0;
  va_start(ap, file);
  for (; (args[argno] = va_arg(ap, char *)) != (char *) 0; argno++)
  {
                // prints an invalid fourth address.
        cout << "addr: " << hex << (void*) args[argno] << endl;
                // dumps core when printing the fourth argument. Obviously.
        cout << "arg : " << args[argno] << endl;
  }
  va_end(ap);
  //return (execv(file, args));
}

int
main()
{
        execit("test", "one", "two", "three");
}



-- 
 -- Narendra Ravi     Email : narendra_at_spiff.hr.att.com
    MT  A4-4B27       Phone : 732-420-7792
Received on Mon Oct 30 2000 - 16:00:20 NZDT

This archive was generated by hypermail 2.4.0 : Wed Nov 08 2023 - 11:53:41 NZDT