summaryrefslogtreecommitdiff
path: root/include/stdio.h
diff options
context:
space:
mode:
authorAnil Madhavapeddy <avsm@cvs.openbsd.org>2003-06-26 18:35:14 +0000
committerAnil Madhavapeddy <avsm@cvs.openbsd.org>2003-06-26 18:35:14 +0000
commit8266dbf611a37e02c83c4da428f21a7d8c5bf801 (patch)
treeceefafa5cbc273538b74376d0e081cd83be48b84 /include/stdio.h
parent4f22ff20604dd441c644e14195a64eade733296f (diff)
Mark various standard library functions with the __bounded__ attribute.
You must have an up-to-date gcc for this! deraadt@ ok
Diffstat (limited to 'include/stdio.h')
-rw-r--r--include/stdio.h17
1 files changed, 11 insertions, 6 deletions
diff --git a/include/stdio.h b/include/stdio.h
index 57ad41a0bda..7453eb4265e 100644
--- a/include/stdio.h
+++ b/include/stdio.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: stdio.h,v 1.26 2003/06/02 19:34:12 millert Exp $ */
+/* $OpenBSD: stdio.h,v 1.27 2003/06/26 18:35:13 avsm Exp $ */
/* $NetBSD: stdio.h,v 1.18 1996/04/25 18:29:21 jtc Exp $ */
/*-
@@ -214,12 +214,14 @@ int ferror(FILE *);
int fflush(FILE *);
int fgetc(FILE *);
int fgetpos(FILE *, fpos_t *);
-char *fgets(char *, int, FILE *);
+char *fgets(char *, int, FILE *)
+ __attribute__((__bounded__ (__string__,1,2)));
FILE *fopen(const char *, const char *);
int fprintf(FILE *, const char *, ...);
int fputc(int, FILE *);
int fputs(const char *, FILE *);
-size_t fread(void *, size_t, size_t, FILE *);
+size_t fread(void *, size_t, size_t, FILE *)
+ __attribute__((__bounded__ (__size__,1,3,2)));
FILE *freopen(const char *, const char *, FILE *);
int fscanf(FILE *, const char *, ...);
int fseek(FILE *, long, int);
@@ -227,7 +229,8 @@ int fseeko(FILE *, off_t, int);
int fsetpos(FILE *, const fpos_t *);
long ftell(FILE *);
off_t ftello(FILE *);
-size_t fwrite(const void *, size_t, size_t, FILE *);
+size_t fwrite(const void *, size_t, size_t, FILE *)
+ __attribute__((__bounded__ (__size__,1,3,2)));
int getc(FILE *);
int getchar(void);
char *gets(char *);
@@ -313,13 +316,15 @@ int setlinebuf(FILE *);
char *tempnam(const char *, const char *);
int snprintf(char *, size_t, const char *, ...)
__attribute__((__format__ (printf, 3, 4)))
- __attribute__((__nonnull__ (3)));
+ __attribute__((__nonnull__ (3)))
+ __attribute__((__bounded__ (__string__,1,2)));
int vasprintf(char **, const char *, _BSD_VA_LIST_)
__attribute__((__format__ (printf, 2, 0)))
__attribute__((__nonnull__ (2)));
int vsnprintf(char *, size_t, const char *, _BSD_VA_LIST_)
__attribute__((__format__ (printf, 3, 0)))
- __attribute__((__nonnull__ (3)));
+ __attribute__((__nonnull__ (3)))
+ __attribute__((__bounded__(__string__,1,2)));
int vscanf(const char *, _BSD_VA_LIST_)
__attribute__((__format__ (scanf, 1, 0)))
__attribute__((__nonnull__ (1)));