parent
ecd504ef84
commit
b15aa27df8
@ -1,87 +0,0 @@
|
||||
From cc161d7a748ec23c621a6cef6f99dcbc88049fc5 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Klapetek <mklapetek@kde.org>
|
||||
Date: Fri, 16 Oct 2015 12:42:52 -0400
|
||||
Subject: [PATCH 3/4] Prefix the kwallet-pam output properly
|
||||
|
||||
KWallet4 uses the same prefix, so this makes it "kwalletd5" so it's
|
||||
clear in the debug output if it comes from KWallet 4 or 5
|
||||
---
|
||||
src/runtime/kwalletd/main.cpp | 18 +++++++++---------
|
||||
1 file changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/src/runtime/kwalletd/main.cpp b/src/runtime/kwalletd/main.cpp
|
||||
index fbab58d..39b5ae9 100644
|
||||
--- a/src/runtime/kwalletd/main.cpp
|
||||
+++ b/src/runtime/kwalletd/main.cpp
|
||||
@@ -56,7 +56,7 @@ static bool isWalletEnabled()
|
||||
//Waits until the PAM_MODULE sends the hash
|
||||
static char *waitForHash()
|
||||
{
|
||||
- printf("kwalletd: Waiting for hash on %d-\n", pipefd);
|
||||
+ printf("kwalletd5: Waiting for hash on %d-\n", pipefd);
|
||||
int totalRead = 0;
|
||||
int readBytes = 0;
|
||||
int attempts = 0;
|
||||
@@ -79,16 +79,16 @@ static char *waitForHash()
|
||||
//Waits until startkde sends the environment variables
|
||||
static int waitForEnvironment()
|
||||
{
|
||||
- printf("kwalletd: waitingForEnvironment on: %d\n", socketfd);
|
||||
+ printf("kwalletd5: waitingForEnvironment on: %d\n", socketfd);
|
||||
|
||||
int s2;
|
||||
socklen_t t;
|
||||
struct sockaddr_un remote;
|
||||
if ((s2 = accept(socketfd, (struct sockaddr *)&remote, &t)) == -1) {
|
||||
- fprintf(stdout, "kwalletd: Couldn't accept incoming connection\n");
|
||||
+ fprintf(stdout, "kwalletd5: Couldn't accept incoming connection\n");
|
||||
return -1;
|
||||
}
|
||||
- printf("kwalletd: client connected\n");
|
||||
+ printf("kwalletd5: client connected\n");
|
||||
|
||||
char str[BSIZE];
|
||||
memset(str, '\0', sizeof(char) * BSIZE);
|
||||
@@ -102,26 +102,26 @@ static int waitForEnvironment()
|
||||
putenv(strdup(str));
|
||||
}
|
||||
}
|
||||
- printf("kwalletd: client disconnected\n");
|
||||
+ printf("kwalletd5: client disconnected\n");
|
||||
close(socketfd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
char* checkPamModule(int argc, char **argv)
|
||||
{
|
||||
- printf("Checking for pam module\n");
|
||||
+ printf("kwalletd5: Checking for pam module\n");
|
||||
char *hash = NULL;
|
||||
int x = 1;
|
||||
for (; x < argc; ++x) {
|
||||
if (strcmp(argv[x], "--pam-login") != 0) {
|
||||
continue;
|
||||
}
|
||||
- printf("Got pam-login\n");
|
||||
+ printf("kwalletd5: Got pam-login param\n");
|
||||
argv[x] = NULL;
|
||||
x++;
|
||||
//We need at least 2 extra arguments after --pam-login
|
||||
if (x + 1 > argc) {
|
||||
- printf("Invalid arguments (less than needed)\n");
|
||||
+ printf("kwalletd5: Invalid arguments (less than needed)\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ char* checkPamModule(int argc, char **argv)
|
||||
hash = waitForHash();
|
||||
|
||||
if (hash == NULL || waitForEnvironment() == -1) {
|
||||
- printf("Hash or environment not received\n");
|
||||
+ printf("kwalletd5: Hash or environment not received\n");
|
||||
free(hash);
|
||||
return NULL;
|
||||
}
|
||||
--
|
||||
2.5.0
|
||||
|
@ -1,47 +0,0 @@
|
||||
From f1e6b9d168281196010c44af2eae4587c1d2d088 Mon Sep 17 00:00:00 2001
|
||||
From: Harald Sitter <sitter@kde.org>
|
||||
Date: Wed, 21 Oct 2015 07:38:48 +0200
|
||||
Subject: [PATCH 4/4] initialize socket size with correct value
|
||||
|
||||
to quote man 2 accept:
|
||||
> The addrlen argument is a value-result argument: the caller must
|
||||
> initialize it to contain the size (in bytes) of the structure pointed
|
||||
> to by addr; on return it will contain the actual size of the peer
|
||||
> address.
|
||||
|
||||
If addrlen is not correct we may get EINVAL on trying to connect to the
|
||||
environment socket which in turn results in a broken environment of the
|
||||
daemon when started through pam as it will inherit the DM environment.
|
||||
This doesn't have to happen, it does however reproducibly with nvidia-352
|
||||
on Kubuntu 15.10. Why or how nvidia plays into this is not entirely clear,
|
||||
best bet is that it simply is a coincidence where nvidia would have
|
||||
something allocated in the memory beforehand and since the addrlen
|
||||
stack variable was not explicitly initialized to anything it would could
|
||||
potentially be negative (EINVAL condition) or wrong such that it meets
|
||||
an internal error check within accept().
|
||||
|
||||
CHANGELOG: Fixed KWallet configuration file warnings on login
|
||||
FIXED-IN: 5.16
|
||||
BUG: 351805
|
||||
REVIEW: 125717
|
||||
---
|
||||
src/runtime/kwalletd/main.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/runtime/kwalletd/main.cpp b/src/runtime/kwalletd/main.cpp
|
||||
index 39b5ae9..e790afe 100644
|
||||
--- a/src/runtime/kwalletd/main.cpp
|
||||
+++ b/src/runtime/kwalletd/main.cpp
|
||||
@@ -82,8 +82,8 @@ static int waitForEnvironment()
|
||||
printf("kwalletd5: waitingForEnvironment on: %d\n", socketfd);
|
||||
|
||||
int s2;
|
||||
- socklen_t t;
|
||||
struct sockaddr_un remote;
|
||||
+ socklen_t t = sizeof(remote);
|
||||
if ((s2 = accept(socketfd, (struct sockaddr *)&remote, &t)) == -1) {
|
||||
fprintf(stdout, "kwalletd5: Couldn't accept incoming connection\n");
|
||||
return -1;
|
||||
--
|
||||
2.5.0
|
||||
|
Loading…
Reference in new issue