Make n_spaces return a const char *
authorTom Tromey <tom@tromey.com>
Sat, 11 Dec 2021 22:10:14 +0000 (15:10 -0700)
committerTom Tromey <tom@tromey.com>
Mon, 20 Dec 2021 15:49:27 +0000 (08:49 -0700)
n_spaces keeps the spaces in a static buffer.  If a caller overwrites
these, it may give an incorrect result to a subsequent caller.  So,
make the return type const to help avoid this outcome.

gdb/utils.c
gdb/utils.h

index e27a8818b94cb8392f77a59ad1e5dd7732d9ea11..ea0f65c10e4ec6ab2459dd3e87e37240cac29bc1 100644 (file)
@@ -2303,7 +2303,7 @@ puts_unfiltered (const char *string)
 
 /* Return a pointer to N spaces and a null.  The pointer is good
    until the next call to here.  */
-char *
+const char *
 n_spaces (int n)
 {
   char *t;
index 6f3a70213a4834e1e0cabb66866dabb6b2ebd04c..f6fd32faf90c4cea866c56104605cb8a0106773f 100644 (file)
@@ -473,7 +473,7 @@ extern void print_spaces (int, struct ui_file *);
 
 extern void print_spaces_filtered (int, struct ui_file *);
 
-extern char *n_spaces (int);
+extern const char *n_spaces (int);
 
 extern void fputstr_filtered (const char *str, int quotr,
                              struct ui_file * stream);