File: solve_PATH_MAX_issue.patch

package info (click to toggle)
gdb 7.7.1%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 188,040 kB
  • ctags: 285,193
  • sloc: ansic: 1,961,235; asm: 319,930; exp: 109,483; makefile: 53,373; sh: 22,635; yacc: 10,891; cpp: 10,169; xml: 6,135; perl: 4,960; python: 3,452; ada: 1,998; pascal: 1,436; lex: 622; lisp: 536; sed: 228; f90: 164; awk: 140; objc: 134; java: 73; fortran: 43
file content (41 lines) | stat: -rw-r--r-- 1,456 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Description: Patch out a PATH_MAX usage, for Hurd's benefit

Author: Svante Signell <svante.signell@gmail.com>
Bug-Debian: http://bugs.debian.org/709508
Forwarded: http://sourceware.org/ml/gdb-patches/2013-05/msg00878.html
Reviewed-By: Héctor Orón Martínez <zumbi@debian.org>
Last-Update: 2013-06-08

Index: gdb/gdb/nto-tdep.c
===================================================================
--- gdb.orig/gdb/nto-tdep.c	2014-08-11 18:33:00.197800126 +0200
+++ gdb/gdb/nto-tdep.c	2014-08-11 18:33:00.193800126 +0200
@@ -146,9 +146,11 @@
 void
 nto_init_solib_absolute_prefix (void)
 {
-  char buf[PATH_MAX * 2], arch_path[PATH_MAX];
+  char *buf, *arch_path;
   char *nto_root, *endian;
   const char *arch;
+  int arch_len, len;
+#define FMT "set solib-absolute-prefix %s"
 
   nto_root = nto_target ();
   if (strcmp (gdbarch_bfd_arch_info (target_gdbarch ())->arch_name, "i386") == 0)
@@ -171,9 +173,13 @@
 	       == BFD_ENDIAN_BIG ? "be" : "le";
     }
 
-  xsnprintf (arch_path, sizeof (arch_path), "%s/%s%s", nto_root, arch, endian);
+  arch_len = strlen (nto_root) + 1 + strlen (arch) + strlen (endian) + 1;
+  arch_path = alloca (arch_len);
+  xsnprintf (arch_path, arch_len, "%s/%s%s", nto_root, arch, endian);
 
-  xsnprintf (buf, sizeof (buf), "set solib-absolute-prefix %s", arch_path);
+  len = strlen (FMT) - 2 + strlen (arch_path) + 1;
+  buf =  alloca (len);
+  xsnprintf (buf, len, FMT, arch_path);
   execute_command (buf, 0);
 }