diff options
author | Bruno Haible <bruno@clisp.org> | 2003-11-17 15:14:21 +0000 |
---|---|---|
committer | Bruno Haible <bruno@clisp.org> | 2003-11-17 15:14:21 +0000 |
commit | a416aa560a13c4fc49a39ab5f0225c999bcda510 (patch) | |
tree | 3668bf6e79affcb65427a8fa18507cab409e19c3 /lib/printf-parse.h | |
parent | dda38ff89ea6c5c28da197cebfbe2d5b510eafb5 (diff) | |
download | gnulib-a416aa560a13c4fc49a39ab5f0225c999bcda510.tar.gz |
Use xsize.h to protect against memory size overflows.
Diffstat (limited to 'lib/printf-parse.h')
-rw-r--r-- | lib/printf-parse.h | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/lib/printf-parse.h b/lib/printf-parse.h index 54b429f129..56f7cd280e 100644 --- a/lib/printf-parse.h +++ b/lib/printf-parse.h @@ -1,5 +1,5 @@ /* Parse printf format string. - Copyright (C) 1999, 2002 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2003 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -20,6 +20,9 @@ #include "printf-args.h" +/* Get ssize_t. */ +#include <sys/types.h> + /* Flags */ #define FLAG_GROUP 1 /* ' flag */ @@ -37,22 +40,22 @@ typedef struct int flags; const char* width_start; const char* width_end; - int width_arg_index; + ssize_t width_arg_index; const char* precision_start; const char* precision_end; - int precision_arg_index; + ssize_t precision_arg_index; char conversion; /* d i o u x X f e E g G c s p n U % but not C S */ - int arg_index; + ssize_t arg_index; } char_directive; /* A parsed format string. */ typedef struct { - unsigned int count; + size_t count; char_directive *dir; - unsigned int max_width_length; - unsigned int max_precision_length; + size_t max_width_length; + size_t max_precision_length; } char_directives; |