ask-password: always send final NUL char

This commit is contained in:
Lennart Poettering 2011-04-13 21:26:30 +02:00
parent 8254a47589
commit d55f4f3f92
2 changed files with 9 additions and 11 deletions

View File

@ -82,7 +82,7 @@ int main(int argc, char *argv[]) {
}
truncate_nl(packet+1);
length = strlen(packet+1) + 1;
length = 1 + strlen(packet+1) + 1;
} else if (streq(argv[1], "0")) {
packet[0] = '-';
length = 1;

View File

@ -369,10 +369,15 @@ static int parse_password(const char *filename, char **wall) {
release_terminal();
}
asprintf(&packet, "+%s", password);
free(password);
packet_length = 1+strlen(password)+1;
if (!(packet = new(char, packet_length)))
r = -ENOMEM;
else {
packet[0] = '+';
strcpy(packet+1, password);
}
packet_length = strlen(packet);
free(password);
}
if (r == -ETIME || r == -ENOENT) {
@ -382,17 +387,10 @@ static int parse_password(const char *filename, char **wall) {
}
if (r < 0) {
log_error("Failed to query password: %s", strerror(-r));
goto finish;
}
if (!packet) {
log_error("Out of memory");
r = -ENOMEM;
goto finish;
}
if ((socket_fd = socket(AF_UNIX, SOCK_DGRAM|SOCK_CLOEXEC, 0)) < 0) {
log_error("socket(): %m");
r = -errno;