[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 4a25ed300fe 2/4: Port pdumper to unlikely long sprintf output
From: |
Paul Eggert |
Subject: |
master 4a25ed300fe 2/4: Port pdumper to unlikely long sprintf output |
Date: |
Wed, 22 Jan 2025 01:31:07 -0500 (EST) |
branch: master
commit 4a25ed300fec579f8fc75a53edbd9a6f74e2d44f
Author: Paul Eggert <eggert@cs.ucla.edu>
Commit: Paul Eggert <eggert@cs.ucla.edu>
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.
---
src/pdumper.c | 10 ++++++----
1 file 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
dump_ptr_referrer (const char *label, void const *address)
{
char buf[128];
- buf[0] = '\0';
- sprintf (buf, "%s @ %p", label, address);
+ if (sizeof buf <= snprintf (buf, sizeof buf, "%s @ %p", label, address))
+ strcpy (buf + sizeof buf - 4, "...");
return build_string (buf);
}
@@ -3145,8 +3145,10 @@ dump_vectorlike (struct dump_context *ctx,
case PVEC_TS_NODE:
break;
}
- char msg[60];
- snprintf (msg, sizeof msg, "pseudovector type %d", (int) ptype);
+ int iptype = ptype;
+ static char const fmt[] = "pseudovector type %d";
+ char msg[sizeof fmt - sizeof "%d" + INT_STRLEN_BOUND (iptype) + 1];
+ sprintf (msg, fmt, iptype);
error_unsupported_dump_object (ctx, lv, msg);
}