diff options
| author | Paul Eggert | 2025-01-21 22:18:17 -0800 |
|---|---|---|
| committer | Paul Eggert | 2025-01-21 22:31:00 -0800 |
| commit | 4a25ed300fec579f8fc75a53edbd9a6f74e2d44f (patch) | |
| tree | 61664f6d10d09a45a4fdfeac52dfc8e6d8dd1f67 /src | |
| parent | 8ff7338fdd05fe6d21765711327a99c87cfd7613 (diff) | |
| download | emacs-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.c | 10 |
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 | |||
| 677 | dump_ptr_referrer (const char *label, void const *address) | 677 | dump_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 | ||