vfs: check userland buffers before reading them.
[haiku.git] / src / apps / cortex / InfoView / AppNodeInfoView.cpp
blobb5c964d67e2198d70a31473b5b67e666c9dc2e09
1 /*
2 * Copyright (c) 1999-2000, Eric Moon.
3 * All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions, and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions, and the following disclaimer in the
14 * documentation and/or other materials provided with the distribution.
16 * 3. The name of the author may not be used to endorse or promote products
17 * derived from this software without specific prior written permission.
19 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR "AS IS" AND ANY EXPRESS OR
20 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 * OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
23 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
26 * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
27 * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 // AppNodeInfoView.cpp
34 #include "AppNodeInfoView.h"
35 // NodeManager
36 #include "NodeRef.h"
37 // Support
38 #include "MediaIcon.h"
39 #include "MediaString.h"
41 // Application Kit
42 #include <Roster.h>
43 // Media Kit
44 #include <MediaNode.h>
45 #include <MediaRoster.h>
46 // Storage Kit
47 #include <AppFileInfo.h>
48 #include <Entry.h>
49 #include <File.h>
50 #include <Path.h>
52 __USE_CORTEX_NAMESPACE
54 #include <Debug.h>
55 #define D_METHOD(x) //PRINT (x)
57 // -------------------------------------------------------- //
58 // *** ctor/dtor (public)
59 // -------------------------------------------------------- //
61 AppNodeInfoView::AppNodeInfoView(
62 const NodeRef *ref)
63 : LiveNodeInfoView(ref)
65 D_METHOD(("AppNodeInfoView::AppNodeInfoView()\n"));
67 // adjust view properties
68 setSideBarWidth(be_plain_font->StringWidth(" File Format ") + 2 * InfoView::M_H_MARGIN);
69 setSubTitle("Application-Owned Node");
71 // add separator
72 addField("", "");
74 port_info portInfo;
75 app_info appInfo;
77 if ((get_port_info(ref->node().port, &portInfo) == B_OK)
78 && (be_roster->GetRunningAppInfo(portInfo.team, &appInfo) == B_OK))
80 BEntry appEntry(&appInfo.ref);
81 char appName[B_FILE_NAME_LENGTH];
82 if ((appEntry.InitCheck() == B_OK)
83 && (appEntry.GetName(appName) == B_OK))
85 addField("Application", appName);
87 BFile appFile(&appInfo.ref, B_READ_ONLY);
88 if (appFile.InitCheck() == B_OK)
90 BAppFileInfo appFileInfo(&appFile);
91 if (appFileInfo.InitCheck() == B_OK)
93 version_info appVersion;
94 if (appFileInfo.GetVersionInfo(&appVersion, B_APP_VERSION_KIND) == B_OK)
96 addField("Version", appVersion.long_info);
100 addField("Signature", appInfo.signature);
104 AppNodeInfoView::~AppNodeInfoView()
106 D_METHOD(("AppNodeInfoView::~AppNodeInfoView()\n"));
109 // END -- AppNodeInfoView.cpp --