From owner-p4-projects@FreeBSD.ORG Thu Jul 23 14:24:18 2009 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A471106566C; Thu, 23 Jul 2009 14:24:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4F45A106564A for ; Thu, 23 Jul 2009 14:24:18 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 3CA468FC18 for ; Thu, 23 Jul 2009 14:24:18 +0000 (UTC) (envelope-from jona@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id n6NEOHmL031388 for ; Thu, 23 Jul 2009 14:24:17 GMT (envelope-from jona@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n6NEOHRG031386 for perforce@freebsd.org; Thu, 23 Jul 2009 14:24:17 GMT (envelope-from jona@FreeBSD.org) Date: Thu, 23 Jul 2009 14:24:17 GMT Message-Id: <200907231424.n6NEOHRG031386@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to jona@FreeBSD.org using -f From: Jonathan Anderson To: Perforce Change Reviews Cc: Subject: PERFORCE change 166448 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Jul 2009 14:24:19 -0000 http://perforce.freebsd.org/chv.cgi?CH=166448 Change 166448 by jona@jona-trustedbsd-belle-vmware on 2009/07/23 14:24:02 Re-ordered in-sandbox tests Affected files ... .. //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.cpp#5 edit Differences ... ==== //depot/projects/trustedbsd/capabilities/src/tools/cap/sandbox_qt/sandbox_qt.cpp#5 (text+ko) ==== @@ -264,6 +264,8 @@ printf("sandbox:\tIn sandbox: %i\n", ld_insandbox()); fflush(stdout); + + // get a file descriptor for our host struct lc_host *lchpp; if(lcs_get(&lchpp) < 0) err(EX_IOERR, "Error getting lc_host"); @@ -273,6 +275,8 @@ fflush(stdout); + + // find the User Angel int32_t angel = -1; uint32_t angellen = 1; struct ua_datum *d = ua_recv(host, &angel, &angellen); @@ -293,7 +297,7 @@ - // first test X stuff (inc. starting the QApplication) + // receive X file descriptor, Xauth data int32_t Xfd = -1; uint32_t Xfdlen = 1; d = ua_recv(host, &Xfd, &Xfdlen); @@ -313,6 +317,13 @@ printf("sandbox:\tX at FD %i\n", Xfd); fflush(stdout); + char display[20]; + sprintf(display, "fd://cap:%i", Xfd); + setenv("DISPLAY", display, 1); + printf("sandbox:\tset DISPLAY to %s\n", getenv("DISPLAY")); + fflush(stdout); + + d = ua_recv(host, NULL, 0); if(!d) { @@ -345,34 +356,23 @@ printf("\n"); fflush(stdout); - xcb_auth_info_t xauthinfo; xauthinfo.namelen = xauthnamelen; xauthinfo.name = xauthname; xauthinfo.datalen = xauthdatalen; xauthinfo.data = xauthdata; - xcb_auth_cache(&xauthinfo); - char display[20]; - sprintf(display, "fd://cap:%i", Xfd); - setenv("DISPLAY", display, 1); - printf("sandbox:\tset DISPLAY to %s\n", getenv("DISPLAY")); - fflush(stdout); + // start QApplication printf("sandbox:\tCreating QApplication...\n"); fflush(stdout); QApplication app(argc, argv); - printf("sandbox:\tQApplication started, displaying message box...\n"); - fflush(stdout); - QMessageBox::information(NULL, "Sandbox", "This is sandboxed"); - printf("sandbox:\tMessage box closed\n"); - fflush(stdout); + printf("sandbox:\tQApplication started.\n"); - // now test file opening int fd = ua_open("/etc/passwd", O_RDONLY); if(fd < 0) err(EX_IOERR, "Error opening passwd via angel"); @@ -405,6 +405,16 @@ printf("Filename: %s\n", group.fileName().toStdString().c_str()); printf("Data: %s\n", group.readLine().data()); fflush(stdout); + + + + printf("sandbox:\tDisplaying message box...\n"); + fflush(stdout); + QMessageBox::information(NULL, "Sandbox", "This is sandboxed"); + printf("sandbox:\tMessage box closed\n"); + fflush(stdout); + + return 0; }