aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2025-01-21 22:18:17 -0800
committerPaul Eggert2025-01-21 22:31:00 -0800
commit4a25ed300fec579f8fc75a53edbd9a6f74e2d44f (patch)
tree61664f6d10d09a45a4fdfeac52dfc8e6d8dd1f67 /src
parent8ff7338fdd05fe6d21765711327a99c87cfd7613 (diff)
downloademacs-4a25ed300fec579f8fc75a53edbd9a6f74e2d44f.tar.gz
emacs-4a25ed300fec579f8fc75a53edbd9a6f74e2d44f.zip
Port pdumper to unlikely long sprintf output
* src/pdumper.c (dump_ptr_referrer): Port to platforms where sprintf %p generates absurdly long output. (dump_vectorlike): Port to hypothetical platforms where %d generates absurdly long output.
Diffstat (limited to 'src')
-rw-r--r--src/pdumper.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/pdumper.c b/src/pdumper.c
index e83c7bcf9a1..174dfdb47ef 100644
--- a/src/pdumper.c
+++ b/src/pdumper.c
@@ -677,8 +677,8 @@ static Lisp_Object
677dump_ptr_referrer (const char *label, void const *address) 677dump_ptr_referrer (const char *label, void const *address)
678{ 678{
679 char buf[128]; 679 char buf[128];
680 buf[0] = '\0'; 680 if (sizeof buf <= snprintf (buf, sizeof buf, "%s @ %p", label, address))
681 sprintf (buf, "%s @ %p", label, address); 681 strcpy (buf + sizeof buf - 4, "...");
682 return build_string (buf); 682 return build_string (buf);
683} 683}
684 684
@@ -3145,8 +3145,10 @@ dump_vectorlike (struct dump_context *ctx,
3145 case PVEC_TS_NODE: 3145 case PVEC_TS_NODE:
3146 break; 3146 break;
3147 } 3147 }
3148 char msg[60]; 3148 int iptype = ptype;
3149 snprintf (msg, sizeof msg, "pseudovector type %d", (int) ptype); 3149 static char const fmt[] = "pseudovector type %d";
3150 char msg[sizeof fmt - sizeof "%d" + INT_STRLEN_BOUND (iptype) + 1];
3151 sprintf (msg, fmt, iptype);
3150 error_unsupported_dump_object (ctx, lv, msg); 3152 error_unsupported_dump_object (ctx, lv, msg);
3151} 3153}
3152 3154