aboutsummaryrefslogtreecommitdiffstats
path: root/sbin/ddb
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2009-10-29 13:44:58 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2009-10-29 13:44:58 +0000
commit742765c971d5e82f122dcae4a6ad36d8e9993b40 (patch)
treec6a941b890308ac677d9ee423ec805e5c8b2b558 /sbin/ddb
parente5310f3310f45ec0b5067b66fdcf57d365eb86ee (diff)
downloadsrc-742765c971d5e82f122dcae4a6ad36d8e9993b40.tar.gz
src-742765c971d5e82f122dcae4a6ad36d8e9993b40.zip
When extracting the capture buffer from a crashdump, only read the valid
portion of the capture buffer (db_capture_bufoff vs db_capture_bufsize). This could result in outputting garbage (e.g. lots of 'p' characters if DIAGNOSTIC is enabled) after the end of the capture buffer. While here, fix a spelling nit. Reported by: Mikolaj Golub to my trociny of gmail MFC after: 3 days
Notes
Notes: svn path=/head/; revision=198585
Diffstat (limited to 'sbin/ddb')
-rw-r--r--sbin/ddb/ddb_capture.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/sbin/ddb/ddb_capture.c b/sbin/ddb/ddb_capture.c
index 9f83acbb03a5..ffc9b91552df 100644
--- a/sbin/ddb/ddb_capture.c
+++ b/sbin/ddb/ddb_capture.c
@@ -95,24 +95,24 @@ kread_symbol(kvm_t *kvm, int index, void *address, size_t size,
static void
ddb_capture_print_kvm(kvm_t *kvm)
{
- u_int db_capture_bufsize;
+ u_int db_capture_bufoff;
char *buffer, *db_capture_buf;
if (kread_symbol(kvm, X_DB_CAPTURE_BUF, &db_capture_buf,
sizeof(db_capture_buf), 0) < 0)
errx(-1, "kvm: unable to read db_capture_buf");
- if (kread_symbol(kvm, X_DB_CAPTURE_BUFSIZE, &db_capture_bufsize,
- sizeof(db_capture_bufsize), 0) < 0)
- errx(-1, "kvm: unable to read db_capture_bufsize");
+ if (kread_symbol(kvm, X_DB_CAPTURE_BUFOFF, &db_capture_bufoff,
+ sizeof(db_capture_bufoff), 0) < 0)
+ errx(-1, "kvm: unable to read db_capture_bufoff");
- buffer = malloc(db_capture_bufsize + 1);
+ buffer = malloc(db_capture_bufoff + 1);
if (buffer == NULL)
- err(-1, "malloc: db_capture_bufsize (%u)",
- db_capture_bufsize);
- bzero(buffer, db_capture_bufsize + 1);
+ err(-1, "malloc: db_capture_bufoff (%u)",
+ db_capture_bufoff);
+ bzero(buffer, db_capture_bufoff + 1);
- if (kread(kvm, db_capture_buf, buffer, db_capture_bufsize, 0) < 0)
+ if (kread(kvm, db_capture_buf, buffer, db_capture_bufoff, 0) < 0)
errx(-1, "kvm: unable to read buffer");
printf("%s\n", buffer);
@@ -161,7 +161,7 @@ ddb_capture_status_kvm(kvm_t *kvm)
errx(-1, "kvm: unable to read db_capture_bufsize");
if (kread_symbol(kvm, X_DB_CAPTURE_INPROGRESS,
&db_capture_inprogress, sizeof(db_capture_inprogress), 0) < 0)
- err(-1, "kvm: unable to read db_capture_inpgoress");
+ err(-1, "kvm: unable to read db_capture_inprogress");
printf("%u/%u bytes used\n", db_capture_bufoff, db_capture_bufsize);
if (db_capture_inprogress)
printf("capture is on\n");