Module Name: src Committed By: simonb Date: Tue Apr 6 07:57:03 UTC 2021
Modified Files: src/sys/kern: kern_ctf.c Log Message: Check the CTF magic number in an endian friendly way (and don't use magic numbers to check the magic number!). To generate a diff of this commit: cvs rdiff -u -r1.7 -r1.8 src/sys/kern/kern_ctf.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/kern_ctf.c diff -u src/sys/kern/kern_ctf.c:1.7 src/sys/kern/kern_ctf.c:1.8 --- src/sys/kern/kern_ctf.c:1.7 Mon May 28 21:05:00 2018 +++ src/sys/kern/kern_ctf.c Tue Apr 6 07:57:03 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: kern_ctf.c,v 1.7 2018/05/28 21:05:00 chs Exp $ */ +/* $NetBSD: kern_ctf.c,v 1.8 2021/04/06 07:57:03 simonb Exp $ */ /*- * Copyright (c) 2008 John Birrell <j...@freebsd.org> * All rights reserved. @@ -81,6 +81,7 @@ mod_ctf_get(struct module *mod, mod_ctf_ void *ctfbuf = NULL; uint8_t *ctfaddr; + uint16_t ctfmagic; size_t ctfsize; /* @@ -137,8 +138,9 @@ mod_ctf_get(struct module *mod, mod_ctf_ goto out; } - /* Check the CTF magic number. (XXX check for big endian!) */ - if (ctfaddr[0] != 0xf1 || ctfaddr[1] != 0xcf) { + /* Check the CTF magic number. */ + memcpy(&ctfmagic, ctfaddr, sizeof ctfmagic); + if (ctfmagic != CTF_MAGIC) { error = EINVAL; goto out; }