Skip to content

Commit 6183b83

Browse files
author
netblue30
committed
arch linux fixes
1 parent 93346db commit 6183b83

File tree

3 files changed

+42
-40
lines changed

3 files changed

+42
-40
lines changed

src/firejail-ui/network.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -42,19 +42,19 @@ uint32_t network_get_defaultgw() {
4242
if (!fp)
4343
// probably we are dealing with a GrSecurity system
4444
return 0; // attempt error recovery
45-
45+
4646
char buf[BUFSIZE];
4747
uint32_t retval = 0;
4848
while (fgets(buf, BUFSIZE, fp)) {
4949
if (strncmp(buf, "Iface", 5) == 0)
5050
continue;
51-
51+
5252
char *ptr = buf;
5353
while (*ptr != ' ' && *ptr != '\t')
5454
ptr++;
5555
while (*ptr == ' ' || *ptr == '\t')
5656
ptr++;
57-
57+
5858
unsigned dest;
5959
unsigned gw;
6060
int rv = sscanf(ptr, "%x %x", &dest, &gw);
@@ -75,7 +75,10 @@ int check_wireless(const char* ifname, char* protocol) {
7575
int sock = -1;
7676
struct iwreq pwrq;
7777
memset(&pwrq, 0, sizeof(pwrq));
78-
strncpy(pwrq.ifr_name, ifname, IFNAMSIZ);
78+
int len = strlen(ifname);
79+
if (len > IFNAMSIZ)
80+
len = IFNAMSIZ;
81+
memcpy(pwrq.ifr_name, ifname, len);
7982

8083
if ((sock = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
8184
perror("sockqet");
@@ -99,15 +102,15 @@ const char *detect_network() {
99102

100103
if (getifaddrs(&ifaddr) == -1)
101104
errExit("getifaddrs");
102-
105+
103106
// find the default gateway
104107
uint32_t gw = network_get_defaultgw();
105108
printf("default gateway detected: %d.%d.%d.%d\n", PRINT_IP(gw));
106109
if (gw == 0) {
107110
fprintf(stderr, "Warning: cannot find the default gateway. Networking namespace is disabled.\n");
108111
return "";
109112
}
110-
113+
111114
// Walk through linked list, maintaining head pointer so we can free list later
112115
for (ifa = ifaddr; ifa != NULL; ifa = ifa->ifa_next) {
113116
if (ifa->ifa_addr == NULL)
@@ -116,22 +119,22 @@ const char *detect_network() {
116119
int family = ifa->ifa_addr->sa_family;
117120
if (family != AF_INET)
118121
continue;
119-
122+
120123
// no loopback
121124
if (ifa->ifa_flags & IFF_LOOPBACK)
122125
continue;
123126

124127
// interface not running
125128
if ((ifa->ifa_flags & (IFF_UP | IFF_RUNNING)) != (IFF_UP | IFF_RUNNING))
126129
continue;
127-
130+
128131
// no wireless
129132
if (check_wireless(ifa->ifa_name, NULL))
130133
continue;
131134

132135
uint32_t if_addr = ntohl(((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr);
133136
uint32_t if_mask = ntohl(((struct sockaddr_in *)ifa->ifa_netmask)->sin_addr.s_addr);
134-
printf("network interface: %s %d.%d.%d.%d %d.%d.%d.%d\n",
137+
printf("network interface: %s %d.%d.%d.%d %d.%d.%d.%d\n",
135138
ifa->ifa_name, PRINT_IP(if_addr), PRINT_IP(if_mask));
136139

137140
// check default gateway is resolved on this interface

src/fstats/dbpid.cpp

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,12 @@
2020
#include "dbpid.h"
2121

2222
DbPid::DbPid(pid_t pid): next_(0), pid_(pid), cmd_(0), network_disabled_(true), uid_(0), configured_(false) {
23-
memset(data_4min_, 0, sizeof(data_4min_));
24-
memset(data_1h_, 0, sizeof(data_1h_));
25-
memset(data_12h_, 0, sizeof(data_12h_));
2623
}
2724

2825
DbPid::~DbPid() {
2926
if (cmd_)
3027
delete cmd_;
31-
28+
3229
if (next_)
3330
delete next_;
3431
}
@@ -45,8 +42,8 @@ void DbPid::setCmd(const char *cmd) {
4542
delete cmd_;
4643
cmd_ = 0;
4744
}
48-
}
49-
45+
}
46+
5047
if (!cmd_) {
5148
cmd_ = new char[strlen(cmd) + 1];
5249
strcpy(cmd_, cmd);
@@ -60,7 +57,7 @@ void DbPid::add(DbPid *dbpid) {
6057
next_ = dbpid;
6158
return;
6259
}
63-
60+
6461
next_->add(dbpid);
6562
}
6663

@@ -70,33 +67,33 @@ void DbPid::remove(DbPid *dbpid) {
7067
next_ = dbpid->next_;
7168
return;
7269
}
73-
70+
7471
if (next_)
7572
next_->remove(dbpid);
7673
}
77-
74+
7875
DbPid *DbPid::find(pid_t pid) {
7976
if (pid_ == pid) {
8077
return this;
8178
}
82-
79+
8380
if (next_) {
8481
return next_->find(pid);
8582
}
86-
87-
return 0;
88-
}
83+
84+
return 0;
85+
}
8986

9087
void DbPid::dbgprint() {
9188
printf("***\n");
9289
printf("*** PID %d, %s\n", pid_, cmd_);
9390
printf("***\n");
94-
91+
9592
for (int i = 0; i < MAXCYCLE; i++)
9693
data_4min_[i].dbgprint(i);
97-
94+
9895
if (next_)
9996
next_->dbgprint();
10097
}
101-
98+
10299

src/fstats/stats_dialog.cpp

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -382,17 +382,19 @@ void StatsDialog::updateTop() {
382382

383383
QString StatsDialog::printDump(int index) {
384384
QString msg = "";
385-
QString str;
386385
struct tm *t = localtime(&fdns_report_->tstamp[index]);
387-
str.sprintf("%02d:%02d:%02d ", t->tm_hour, t->tm_min, t->tm_sec);
386+
char *s;
387+
if (asprintf(&s, "%02d:%02d:%02d ", t->tm_hour, t->tm_min, t->tm_sec) == -1)
388+
errExit("asprintf");
388389
if (strstr(fdns_report_->logentry[index], "dropped")) {
389390
msg += "<font color=\"red\">";
390-
msg += str + fdns_report_->logentry[index];
391+
msg += QString(s) + fdns_report_->logentry[index];
391392
msg += "</font>";
392393
}
393394
else
394-
msg += str + fdns_report_->logentry[index];
395+
msg += QString(s) + fdns_report_->logentry[index];
395396

397+
free(s);
396398
msg += "<br/>";
397399

398400
return msg;
@@ -437,12 +439,14 @@ void StatsDialog::updateFdnsDump() {
437439

438440
msg += "<b>Resolvers:</b><br/>";
439441
for (int i = 0; i < fdns_report_->resolvers; i++) {
440-
QString str;
441-
str.sprintf("Resolver %d: ", i);
442+
QString str= QString("Resolver %1: ").arg(i);
442443
msg += str;
443444
if (fdns_report_->encrypted[i]) {
444-
QString str2;
445-
str2.sprintf("connected to %d.%d.%d.%d<br/>", PRINT_IP(fdns_report_->peer_ip[i]));
445+
char *s;
446+
if (asprintf(&s, "connected to %d.%d.%d.%d<br/>", PRINT_IP(fdns_report_->peer_ip[i])) == -1)
447+
errExit("asprintf");
448+
QString str2 = s;
449+
free(s);
446450
msg += str2;
447451
}
448452
else
@@ -451,20 +455,19 @@ void StatsDialog::updateFdnsDump() {
451455
msg += "<br/>";
452456

453457
msg += "<b>Process:</b><br/>";
454-
QString qs;
455-
qs.sprintf("PID: %u<br/>", report.pid);
458+
QString qs = QString("PID: %1<br/>").arg(report.pid);
456459
msg += qs;
457-
qs.sprintf("Fallback server: %s<br/>", report.fallback);
460+
qs = QString("Fallback server: %1<br/>").arg(report.fallback);
458461
msg += qs;
459462
if (report.disable_local_doh)
460463
msg += "DoH disabled for applications behind the proxy<br/>";
461464
else
462465
msg += "DoH allowed for applications behind the proxy<br/>";
463-
qs.sprintf("To shutdown the proxy run <b>\"sudo kill -9 %u\"</b> in a terminal<br/><br/>", report.pid);
466+
qs = QString("To shutdown the proxy run <b>\"sudo kill -9 %1\"</b> in a terminal<br/><br/>").arg(report.pid);
464467
msg += qs;
465468

466469
msg += "<b>Queries:</b><br/>";
467-
qs.sprintf("(queries cleared after %d minutes)<br/>", report.log_timeout);
470+
qs = QString("(queries cleared after %1 minutes)<br/>").arg(report.log_timeout);
468471
msg += qs;
469472
for (int i = fdns_report_->logindex; i < MAX_LOG_ENTRIES; i++) {
470473
if (fdns_report_->tstamp && strlen(fdns_report_->logentry[i]))
@@ -776,8 +779,7 @@ static QString get_interfaces_old(int pid) {
776779
ptr++;
777780
char *child_dev = ptr;
778781

779-
QString str;
780-
str.sprintf("%s (parent device %s", child_dev, parent_dev);
782+
QString str = QString("%1 (parent device %2").arg(child_dev).arg(parent_dev);
781783

782784
// detect bridge device
783785
char *sysfile;

0 commit comments

Comments
 (0)