From owner-p4-projects@FreeBSD.ORG Thu Nov 29 17:14:27 2012 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9E5C5CBE; Thu, 29 Nov 2012 17:14:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 60158CBC for ; Thu, 29 Nov 2012 17:14:27 +0000 (UTC) (envelope-from brooks@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 45D5E8FC0C for ; Thu, 29 Nov 2012 17:14:27 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.5/8.14.5) with ESMTP id qATHERqC039250 for ; Thu, 29 Nov 2012 17:14:27 GMT (envelope-from brooks@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.5/8.14.5/Submit) id qATHERLW039247 for perforce@freebsd.org; Thu, 29 Nov 2012 17:14:27 GMT (envelope-from brooks@freebsd.org) Date: Thu, 29 Nov 2012 17:14:27 GMT Message-Id: <201211291714.qATHERLW039247@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to brooks@freebsd.org using -f From: Brooks Davis Subject: PERFORCE change 219863 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 29 Nov 2012 17:14:27 -0000 http://p4web.freebsd.org/@@219863?ac=10 Change 219863 by brooks@brooks_zenith on 2012/11/29 17:14:00 Checkpoint a trivial coversion to using the magic_load_buffers() API. Affected files ... .. //depot/projects/ctsrd/cheribsd/src/ctsrd/minifile/minifile.c#3 edit Differences ... ==== //depot/projects/ctsrd/cheribsd/src/ctsrd/minifile/minifile.c#3 (text+ko) ==== @@ -1,6 +1,8 @@ #include #include +#include +#include #include #include @@ -20,6 +22,8 @@ SB_CHERI } sbtype = SB_NONE; +#define MAGIC_FILE "/usr/share/misc/magic.mgc" + static void usage(void) { @@ -31,12 +35,14 @@ main(int argc, char **argv) { char ch; + void *magicbuf; const char *fname; - int fd, status; + int mfd, fd, status; ssize_t rlen; pid_t pid; const char *type; struct magic_set *magic; + struct stat sb; char buf[4096], *ttype; int pfd[2]; @@ -62,7 +68,26 @@ magic = magic_open(MAGIC_MIME_TYPE); if (magic == NULL) errx(1, "magic_open()"); - if (magic_load(magic, NULL) == -1) { + mfd = open(MAGIC_FILE, O_RDONLY); + if (mfd == -1) { + warn("open(%s)", MAGIC_FILE); + magic_close(magic); + exit(1); + } + if (fstat(mfd, &sb) == -1) { + warn("fstat(%s)", MAGIC_FILE); + magic_close(magic); + exit(1); + } + magicbuf = mmap(NULL, sb.st_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, + mfd, 0); + if (magicbuf == MAP_FAILED) { + warn("mmap(%s)", MAGIC_FILE); + magic_close(magic); + exit(1); + } + close(mfd); + if (magic_load_buffers(magic, &magicbuf, &sb.st_size, 1) == -1) { warnx("magic_load() %s", magic_error(magic)); magic_close(magic); exit(1);