Use xsize.h to protect against memory size overflows.
[pspp] / lib / printf-parse.h
index 54b429f1295ae71d9349a95ef1859203f769744e..56f7cd280e7f517ce05a8ded41da75612d5a6f64 100644 (file)
@@ -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;