=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/kdump/ktrstruct.c,v retrieving revision 1.22 retrieving revision 1.23 diff -c -r1.22 -r1.23 *** src/usr.bin/kdump/ktrstruct.c 2016/08/26 08:52:19 1.22 --- src/usr.bin/kdump/ktrstruct.c 2016/10/08 02:16:43 1.23 *************** *** 1,4 **** ! /* $OpenBSD: ktrstruct.c,v 1.22 2016/08/26 08:52:19 guenther Exp $ */ /*- * Copyright (c) 1988, 1993 --- 1,4 ---- ! /* $OpenBSD: ktrstruct.c,v 1.23 2016/10/08 02:16:43 guenther Exp $ */ /*- * Copyright (c) 1988, 1993 *************** *** 318,323 **** --- 318,337 ---- } static void + ktrfds(const char *data, size_t count) + { + size_t i; + int fd; + + for (i = 0; i < count - 1; i++) { + memcpy(&fd, &data[i * sizeof(fd)], sizeof(fd)); + printf("fd[%zu] = %d, ", i, fd); + } + memcpy(&fd, &data[i * sizeof(fd)], sizeof(fd)); + printf("fd[%zu] = %d\n", i, fd); + } + + static void ktrfdset(struct fd_set *fds, int len) { int nfds, i, start = -1; *************** *** 586,591 **** --- 600,609 ---- goto invalid; memcpy(&tf, data, datalen); ktrtfork(&tf); + } else if (strcmp(name, "fds") == 0) { + if (datalen % sizeof(int)) + goto invalid; + ktrfds(data, datalen / sizeof(int)); } else if (strcmp(name, "fdset") == 0) { struct fd_set *fds;