From owner-p4-projects@FreeBSD.ORG Wed Oct 8 15:12:52 2003 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 21A3316A4C0; Wed, 8 Oct 2003 15:12:52 -0700 (PDT) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id EEB9E16A4B3 for ; Wed, 8 Oct 2003 15:12:51 -0700 (PDT) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 6DE0B43FB1 for ; Wed, 8 Oct 2003 15:12:51 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.9/8.12.9) with ESMTP id h98MCpXJ001167 for ; Wed, 8 Oct 2003 15:12:51 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.9/8.12.9/Submit) id h98MCoaY001164 for perforce@freebsd.org; Wed, 8 Oct 2003 15:12:50 -0700 (PDT) (envelope-from Hrishikesh_Dandekar@NAI.com) Date: Wed, 8 Oct 2003 15:12:50 -0700 (PDT) Message-Id: <200310082212.h98MCoaY001164@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to Hrishikesh_Dandekar@NAI.com using -f From: Hrishikesh Dandekar To: Perforce Change Reviews Subject: PERFORCE change 39376 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 08 Oct 2003 22:12:52 -0000 http://perforce.freebsd.org/chv.cgi?CH=39376 Change 39376 by hdandeka@hdandeka_yash on 2003/10/08 15:11:55 Fix the call to security_load_policy. It now accepts the buffer and the len instead of the fp. Affected files ... .. //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/checkpolicy.c#4 edit Differences ... ==== //depot/projects/trustedbsd/sebsd/contrib/sebsd/checkpolicy/checkpolicy.c#4 (text+ko) ==== @@ -36,6 +36,7 @@ #include #include #include +#include #include #include "linux-compat.h" #else /* __FreeBSD__ */ @@ -319,6 +320,9 @@ unsigned int binary = 0, debug = 0; int ret, ch, nel; FILE *fp, *outfp = NULL; + void *filedata; + struct stat fsb; + size_t filelen; while ((ch = getopt(argc, argv, "o:dbV")) != EOF) { switch (ch) { @@ -620,7 +624,25 @@ printf("%s: unable to open %s\n", argv[0], ans); break; } - ret = security_load_policy(fp); + if(stat(ans, &fsb) == -1) { + printf("%s: unable to get size of %s\n", argv[0], ans); + break; + } + filelen = (size_t) fsb.st_size; + if ( ((off_t) filelen) != fsb.st_size ) { + printf("%s: large file, size truncated\n", argv[0]); + break; + } + filedata = malloc(filelen); + if (!filedata) { + fprintf(stderr, "out of memory\n"); + exit(1); + } + if(fread(filedata, filelen, 1, fp) != filelen) { + printf("%s: unable to get read from %s\n", argv[0], ans); + break; + } + ret = security_load_policy(filedata, filelen); switch (ret) { case 0: printf("\nsuccess\n");