Skip to content
This repository was archived by the owner on Jul 17, 2024. It is now read-only.
/ Linux Public archive

Commit dc40de0

Browse files
committed
🐛 Fix vulnerability
1 parent 7789f3e commit dc40de0

File tree

3 files changed

+102
-93
lines changed

3 files changed

+102
-93
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
"Jack 'DooMLorD' W. <doomlordcs@gmail.com> (https://github.com/doomlerd)"
77
],
88
"description": "Discord Rich Presence for web services",
9-
"version": "2.2.17",
9+
"version": "2.2.16",
1010
"repository": {
1111
"type": "git",
1212
"url": "git://github.com/PreMiD/Linux.git"
@@ -21,7 +21,7 @@
2121
"start": "electron dist/app/.",
2222
"dev": "devScript",
2323
"dist": "tsc && devScript --copyOnly && cd dist/app/ && yarn install",
24-
"build": "electron-builder --project ./dist/app/",
24+
"build": "electron-builder --project ./dist/app/ -p never",
2525
"build:appimage": "electron-builder --project ./dist/app/ build -l AppImage --x64 -p onTagOrDraft",
2626
"build:n-appimage": "electron-builder --project ./dist/app/ build -l AppImage --x64 -p never"
2727
},

src/managers/socketManager.ts

Lines changed: 64 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@ import { app, dialog } from "electron";
44
import { update as updateSettings } from "./settingsManager";
55
import { openFileDialog } from "./presenceDevManager";
66
import {
7-
rpcClients,
8-
setActivity,
9-
clearActivity,
10-
getDiscordUser
7+
rpcClients,
8+
setActivity,
9+
clearActivity,
10+
getDiscordUser
1111
} from "./discordManager";
1212
import { trayManager } from "..";
1313

@@ -17,70 +17,74 @@ export let server: Server;
1717
export let connected: boolean = false;
1818

1919
export function init() {
20-
return new Promise(resolve => {
21-
//* Create server
22-
//* create SocketIo server, don't server client
23-
//* Try to listen to port 3020
24-
//* If that fails/some other error happens run socketError
25-
//* If someone connects to socket socketConnection
26-
server = createServer();
27-
io = socketIo(server, { serveClient: false });
28-
server.listen(3020, () => {
29-
//* Resolve promise
30-
resolve();
31-
console.log("Opened socket");
32-
});
33-
server.on("error", socketError);
34-
io.on("connection", socketConnection);
35-
});
20+
return new Promise((resolve) => {
21+
//* Create server
22+
//* create SocketIo server, don't server client
23+
//* Try to listen to port 3020
24+
//* If that fails/some other error happens run socketError
25+
//* If someone connects to socket socketConnection
26+
server = createServer();
27+
io = socketIo(server, { serveClient: false });
28+
io.origins((o, c) => {
29+
if (o !== "*") c("Not a chrome extension, socket denied.", false);
30+
c(null, true);
31+
});
32+
server.listen(3020, () => {
33+
//* Resolve promise
34+
resolve();
35+
console.log("Opened socket");
36+
});
37+
server.on("error", socketError);
38+
io.on("connection", socketConnection);
39+
});
3640
}
3741

3842
function socketConnection(cSocket: socketIo.Socket) {
39-
//* Set exported socket letiable to current socket
40-
//* Handle setActivity event
41-
//* Handle clearActivity event
42-
//* Handle settingsUpdate
43-
//* Handle presenceDev
44-
//* Handle version request
45-
//* Once socket user disconnects run cleanup
46-
console.log("Socket connection");
47-
socket = cSocket;
48-
getDiscordUser().then(user => socket.emit("discordUser", user));
49-
socket.on("setActivity", setActivity);
50-
socket.on("clearActivity", clearActivity);
51-
socket.on("settingUpdate", updateSettings);
52-
socket.on("selectLocalPresence", openFileDialog);
53-
socket.on("getVersion", () =>
54-
socket.emit("receiveVersion", app.getVersion().replace(/[\D]/g, ""))
55-
);
56-
socket.once("disconnect", () => {
57-
connected = false;
58-
trayManager.update();
59-
//* Destroy all open RPC connections
60-
console.log("Socket disconnected.");
61-
rpcClients.forEach(c => c.destroy());
62-
});
63-
connected = true;
64-
trayManager.update();
43+
//* Set exported socket letiable to current socket
44+
//* Handle setActivity event
45+
//* Handle clearActivity event
46+
//* Handle settingsUpdate
47+
//* Handle presenceDev
48+
//* Handle version request
49+
//* Once socket user disconnects run cleanup
50+
console.log("Socket connection");
51+
socket = cSocket;
52+
getDiscordUser().then((user) => socket.emit("discordUser", user));
53+
socket.on("setActivity", setActivity);
54+
socket.on("clearActivity", clearActivity);
55+
socket.on("settingUpdate", updateSettings);
56+
socket.on("selectLocalPresence", openFileDialog);
57+
socket.on("getVersion", () =>
58+
socket.emit("receiveVersion", app.getVersion().replace(/[\D]/g, ""))
59+
);
60+
socket.once("disconnect", () => {
61+
connected = false;
62+
trayManager.update();
63+
//* Destroy all open RPC connections
64+
console.log("Socket disconnected.");
65+
rpcClients.forEach((c) => c.destroy());
66+
});
67+
connected = true;
68+
trayManager.update();
6569
}
6670

6771
app.on("quit", () => {
68-
if (socket && socket.connected) socket.disconnect(true);
72+
if (socket && socket.connected) socket.disconnect(true);
6973
});
7074

7175
//* Runs on socket errors
7276
function socketError(e: any) {
73-
//* If port in use
74-
console.log(`Socket error :\n${e.message}`);
75-
if (e.code === "EADDRINUSE") {
76-
//* Focus app
77-
//* Show error dialog
78-
//* Exit app afterwards
79-
app.focus();
80-
dialog.showErrorBox(
81-
"Oh noes! Port error...",
82-
`${app.name} could not bind to port ${e.port}.\nIs ${app.name} running already?`
83-
);
84-
app.quit();
85-
}
77+
//* If port in use
78+
console.log(`Socket error :\n${e.message}`);
79+
if (e.code === "EADDRINUSE") {
80+
//* Focus app
81+
//* Show error dialog
82+
//* Exit app afterwards
83+
app.focus();
84+
dialog.showErrorBox(
85+
"Oh noes! Port error...",
86+
`${app.name} could not bind to port ${e.port}.\nIs ${app.name} running already?`
87+
);
88+
app.quit();
89+
}
8690
}

src/util/updateChecker.ts

Lines changed: 36 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,60 +5,65 @@ export let updateProcess: string = "standby";
55
autoUpdater.autoDownload = false;
66

77
export async function checkForUpdate(auto = false) {
8-
autoUpdater.autoDownload = auto;
9-
try {
10-
autoUpdater.checkForUpdates();
11-
} catch (error) {
12-
errHandler(error);
13-
}
8+
autoUpdater.setFeedURL({
9+
provider: "github",
10+
owner: "doomlerd",
11+
repo: "LinuxUpdater"
12+
});
13+
autoUpdater.autoDownload = auto;
14+
try {
15+
autoUpdater.checkForUpdates();
16+
} catch (error) {
17+
errHandler(error);
18+
}
1419
}
1520

1621
autoUpdater.on("checking-for-update", () => {
17-
updateTray("checking");
22+
updateTray("checking");
1823
});
1924

2025
autoUpdater.on("update-available", () => {
21-
if (!autoUpdater.autoDownload) {
22-
update();
23-
}
26+
if (!autoUpdater.autoDownload) {
27+
update();
28+
}
2429
});
2530

2631
autoUpdater.on("update-not-available", () => {
27-
updateTray("standby");
32+
updateTray("standby");
2833
});
2934

3035
autoUpdater.on("update-downloaded", () => {
31-
autoUpdater.quitAndInstall();
36+
autoUpdater.quitAndInstall();
3237
});
3338

3439
export async function update() {
35-
updateTray("installing");
36-
try {
37-
autoUpdater.downloadUpdate();
38-
} catch (error) {
39-
errHandler(error);
40-
}
40+
updateTray("installing");
41+
try {
42+
autoUpdater.downloadUpdate();
43+
} catch (error) {
44+
errHandler(error);
45+
}
4146
}
4247

4348
autoUpdater.on("error", (error: any) => {
44-
errHandler(error);
49+
errHandler(error);
4550
});
4651

4752
function updateTray(reason: string) {
48-
updateProcess = reason;
49-
trayManager.update();
53+
updateProcess = reason;
54+
trayManager.update();
5055
}
5156

5257
// Temporarily
5358
function errHandler(error: any) {
54-
if (error.toString().includes("ERR_INTERNET_DISCONNECTED")) {
55-
console.log("No internet detected, skipping update check.");
56-
} else {
57-
console.log(
58-
"An error occured while updating " +
59-
(autoUpdater.autoDownload ? "[AUTO] :" : "[MANUAL] :"),
60-
error ? (error.stack || error).toString() : "unknown"
61-
);
62-
}
63-
updateTray("standby");
59+
if (error.toString().includes("ERR_INTERNET_DISCONNECTED")) {
60+
console.log("No internet detected, skipping update check.");
61+
} else {
62+
console.log(
63+
"An error occured while updating " +
64+
(autoUpdater.autoDownload ? "[AUTO] :" : "[MANUAL] :"),
65+
error ? (error.stack || error).toString() : "unknown"
66+
);
67+
}
68+
updateTray("standby");
6469
}

0 commit comments

Comments
 (0)