cvs commit: src/sys/net if_gre.c src/sys/netinet ip_gre.c ip_gre.h src/sys/netipsec keysock.c keysock.h src/sys/netkey keysock.c keysock.h

Bjoern A. Zeeb bz at FreeBSD.org
Sat Jan 21 02:44:39 PST 2006


bz          2006-01-21 10:44:35 UTC

  FreeBSD src repository

  Modified files:
    sys/net              if_gre.c 
    sys/netinet          ip_gre.c ip_gre.h 
    sys/netipsec         keysock.c keysock.h 
    sys/netkey           keysock.c keysock.h 
  Log:
  Fix stack corruptions on amd64.
  
  Vararg functions have a different calling convention than regular
  functions on amd64. Casting a varag function to a regular one to
  match the function pointer declaration will hide the varargs from
  the caller and we will end up with an incorrectly setup stack.
  
  Entirely remove the varargs from these functions and change the
  functions to match the declaration of the function pointers.
  Remove the now unnecessary casts.
  
  Lots of explanations and help from:     peter
  Reviewed by:                            peter
  PR:                                     amd64/89261
  MFC after:                              6 days
  
  Revision  Changes    Path
  1.39      +2 -2      src/sys/net/if_gre.c
  1.21      +3 -25     src/sys/netinet/ip_gre.c
  1.4       +2 -2      src/sys/netinet/ip_gre.h
  1.12      +2 -14     src/sys/netipsec/keysock.c
  1.3       +1 -1      src/sys/netipsec/keysock.h
  1.32      +2 -14     src/sys/netkey/keysock.c
  1.9       +1 -1      src/sys/netkey/keysock.h


More information about the cvs-src mailing list