summaryrefslogtreecommitdiffstats
path: root/usr.bin/kdump/kdump.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/kdump/kdump.c')
-rw-r--r--usr.bin/kdump/kdump.c68
1 files changed, 37 insertions, 31 deletions
diff --git a/usr.bin/kdump/kdump.c b/usr.bin/kdump/kdump.c
index 3d8b93a..9c86fff 100644
--- a/usr.bin/kdump/kdump.c
+++ b/usr.bin/kdump/kdump.c
@@ -182,14 +182,16 @@ main(int argc, char *argv[])
if (ktr_header.ktr_type & KTR_DROP) {
ktr_header.ktr_type &= ~KTR_DROP;
if (!drop_logged && threads) {
- (void)printf("%6d %6d %-8.*s Events dropped.\n",
- ktr_header.ktr_pid, ktr_header.ktr_tid >
- 0 ? ktr_header.ktr_tid : 0, MAXCOMLEN,
- ktr_header.ktr_comm);
+ (void)printf(
+ "%6jd %6jd %-8.*s Events dropped.\n",
+ (intmax_t)ktr_header.ktr_pid,
+ ktr_header.ktr_tid > 0 ?
+ (intmax_t)ktr_header.ktr_tid : 0,
+ MAXCOMLEN, ktr_header.ktr_comm);
drop_logged = 1;
} else if (!drop_logged) {
- (void)printf("%6d %-8.*s Events dropped.\n",
- ktr_header.ktr_pid, MAXCOMLEN,
+ (void)printf("%6jd %-8.*s Events dropped.\n",
+ (intmax_t)ktr_header.ktr_pid, MAXCOMLEN,
ktr_header.ktr_comm);
drop_logged = 1;
}
@@ -309,10 +311,11 @@ dumpheader(struct ktr_header *kth)
* negative tid's as 0.
*/
if (threads)
- (void)printf("%6d %6d %-8.*s ", kth->ktr_pid, kth->ktr_tid >
- 0 ? kth->ktr_tid : 0, MAXCOMLEN, kth->ktr_comm);
+ (void)printf("%6jd %6jd %-8.*s ", (intmax_t)kth->ktr_pid,
+ kth->ktr_tid > 0 ? (intmax_t)kth->ktr_tid : 0,
+ MAXCOMLEN, kth->ktr_comm);
else
- (void)printf("%6d %-8.*s ", kth->ktr_pid, MAXCOMLEN,
+ (void)printf("%6jd %-8.*s ", (intmax_t)kth->ktr_pid, MAXCOMLEN,
kth->ktr_comm);
if (timestamp) {
if (timestamp == 3) {
@@ -325,8 +328,8 @@ dumpheader(struct ktr_header *kth)
timevalsub(&kth->ktr_time, &prevtime);
prevtime = temp;
}
- (void)printf("%ld.%06ld ",
- kth->ktr_time.tv_sec, kth->ktr_time.tv_usec);
+ (void)printf("%jd.%06ld ", (intmax_t)kth->ktr_time.tv_sec,
+ kth->ktr_time.tv_usec);
}
(void)printf("%s ", type);
}
@@ -799,7 +802,7 @@ ktrsyscall(struct ktr_syscall *ktr)
narg--;
}
}
- while (narg) {
+ while (narg > 0) {
print_number(ip,narg,c);
}
(void)putchar(')');
@@ -821,7 +824,7 @@ ktrsysret(struct ktr_sysret *ktr)
if (error == 0) {
if (fancy) {
- (void)printf("%d", ret);
+ (void)printf("%ld", (long)ret);
if (ret < 0 || ret > 9)
(void)printf("/%#lx", (long)ret);
} else {
@@ -1121,17 +1124,14 @@ ktruser_malloc(int len, unsigned char *p)
{
struct utrace_malloc *ut = (struct utrace_malloc *)p;
- if (ut->p == NULL) {
- if (ut->s == 0 && ut->r == NULL)
- printf("malloc_init()\n");
- else
- printf("%p = malloc(%zu)\n", ut->r, ut->s);
- } else {
- if (ut->s == 0)
- printf("free(%p)\n", ut->p);
- else
- printf("%p = realloc(%p, %zu)\n", ut->r, ut->p, ut->s);
- }
+ if (ut->p == (void *)(intptr_t)(-1))
+ printf("malloc_init()\n");
+ else if (ut->s == 0)
+ printf("free(%p)\n", ut->p);
+ else if (ut->p == NULL)
+ printf("%p = malloc(%zu)\n", ut->r, ut->s);
+ else
+ printf("%p = realloc(%p, %zu)\n", ut->r, ut->p, ut->s);
}
void
@@ -1270,7 +1270,7 @@ ktrstat(struct stat *statp)
printf("rdev=%ju, ", (uintmax_t)statp->st_rdev);
printf("atime=");
if (resolv == 0)
- printf("%ld", statp->st_atimespec.tv_sec);
+ printf("%jd", (intmax_t)statp->st_atimespec.tv_sec);
else {
tm = localtime(&statp->st_atimespec.tv_sec);
(void)strftime(timestr, sizeof(timestr), TIME_FORMAT, tm);
@@ -1282,7 +1282,7 @@ ktrstat(struct stat *statp)
printf(", ");
printf("stime=");
if (resolv == 0)
- printf("%ld", statp->st_mtimespec.tv_sec);
+ printf("%jd", (intmax_t)statp->st_mtimespec.tv_sec);
else {
tm = localtime(&statp->st_mtimespec.tv_sec);
(void)strftime(timestr, sizeof(timestr), TIME_FORMAT, tm);
@@ -1294,7 +1294,7 @@ ktrstat(struct stat *statp)
printf(", ");
printf("ctime=");
if (resolv == 0)
- printf("%ld", statp->st_ctimespec.tv_sec);
+ printf("%jd", (intmax_t)statp->st_ctimespec.tv_sec);
else {
tm = localtime(&statp->st_ctimespec.tv_sec);
(void)strftime(timestr, sizeof(timestr), TIME_FORMAT, tm);
@@ -1306,7 +1306,7 @@ ktrstat(struct stat *statp)
printf(", ");
printf("birthtime=");
if (resolv == 0)
- printf("%ld", statp->st_birthtimespec.tv_sec);
+ printf("%jd", (intmax_t)statp->st_birthtimespec.tv_sec);
else {
tm = localtime(&statp->st_birthtimespec.tv_sec);
(void)strftime(timestr, sizeof(timestr), TIME_FORMAT, tm);
@@ -1328,6 +1328,8 @@ ktrstruct(char *buf, size_t buflen)
char *name, *data;
size_t namelen, datalen;
int i;
+ struct stat sb;
+ struct sockaddr_storage ss;
for (name = buf, namelen = 0;
namelen < buflen && name[namelen] != '\0';
@@ -1348,12 +1350,16 @@ ktrstruct(char *buf, size_t buflen)
if (strcmp(name, "stat") == 0) {
if (datalen != sizeof(struct stat))
goto invalid;
- ktrstat((struct stat *)data);
+ memcpy(&sb, data, datalen);
+ ktrstat(&sb);
} else if (strcmp(name, "sockaddr") == 0) {
+ if (datalen > sizeof(ss))
+ goto invalid;
+ memcpy(&ss, data, datalen);
if (datalen < sizeof(struct sockaddr) ||
- datalen != ((struct sockaddr *)(data))->sa_len)
+ datalen != ss.ss_len)
goto invalid;
- ktrsockaddr((struct sockaddr *)data);
+ ktrsockaddr((struct sockaddr *)&ss);
} else {
printf("unknown structure\n");
}
OpenPOWER on IntegriCloud