kern/84981: [PATCH] header protection for <sys/syscall.h>

Robert Millan rmh at aybabtu.com
Tue Aug 16 09:20:13 GMT 2005


>Number:         84981
>Category:       kern
>Synopsis:       [PATCH] header protection for <sys/syscall.h>
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Aug 16 09:20:11 GMT 2005
>Closed-Date:
>Last-Modified:
>Originator:     Robert Millan
>Release:        GNU/kFreeBSD 5.3-1 i686
>Organization:
>Environment:
System: GNU/kFreeBSD bombadil 5.3-1 #0 Sun Aug 14 12:51:55 CEST 2005 i686 GNU/kFreeBSD


	
>Description:
	This patch implements header protection in <sys/syscall.h> by modifiing
        the generator script in sys/kern/makesyscalls.sh.

        Please could you apply and re-generate sys/syscall.h ?

        Thanks!
>How-To-Repeat:
	
>Fix:

diff -ur sys/kern/makesyscalls.sh~ sys/kern/makesyscalls.sh
--- sys/kern/makesyscalls.sh~   2003-12-23 04:50:43.000000000 +0100
+++ sys/kern/makesyscalls.sh    2005-08-14 15:05:41.000000000 +0200
@@ -13,6 +13,7 @@
 sysproto="../sys/sysproto.h"
 sysproto_h=_SYS_SYSPROTO_H_
 syshdr="../sys/syscall.h"
+syshdr_h=_SYS_SYSCALL_H_
 sysmk="../sys/syscall.mk"
 syssw="init_sysent.c"
 syscallprefix="SYS_"
@@ -72,6 +73,7 @@
                sysarg = \"$sysarg\"
                sysnames = \"$sysnames\"
                syshdr = \"$syshdr\"
+               syshdr_h = \"$syshdr_h\"
                sysmk = \"$sysmk\"
                compat = \"$compat\"
                compat4 = \"$compat4\"
@@ -137,6 +139,8 @@
                printf "const char *%s[] = {\n", namesname > sysnames
 
                printf " * created from%s\n */\n\n", $0 > syshdr
+               printf "#ifndef %s\n", syshdr_h > syshdr
+               printf "#define\t%s\n\n", syshdr_h > syshdr
 
                printf "# created from%s\nMIASM = ", $0 > sysmk
 
@@ -486,6 +490,7 @@
                printf("};\n") > sysnames
                printf("#define\t%sMAXSYSCALL\t%d\n", syscallprefix, syscall) \
                    > syshdr
+               printf("\n#endif /* !%s */\n", syshdr_h) > syshdr
        } '
 
 cat $sysinc $sysent >> $syssw


>Release-Note:
>Audit-Trail:
>Unformatted:


More information about the freebsd-bugs mailing list