commit b3869b9bba64e94a630c22acceaf582ca5b4c7f3
parent ddc22be2ea7ebfb0374a0688a178625efd93521d
Author: Nihal Jere <nihal@nihaljere.xyz>
Date: Sat, 28 Aug 2021 14:54:44 -0500
npmc: send absolute path over socket
Diffstat:
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/npmc.c b/npmc.c
@@ -1,6 +1,8 @@
+#include <limits.h>
#include <stdint.h>
#include <stdbool.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/un.h>
@@ -16,6 +18,8 @@
char answer[PASSWORD_MAX_LEN + 1];
int answerlen = 0;
+char abspath[PATH_MAX];
+
int
xwrite(int fd, char *buf, size_t count)
{
@@ -45,6 +49,9 @@ read_answer(int fd)
if (ret == -1)
return ret;
+ if (ret == 0)
+ break;
+
answerlen += ret;
ptr += ret;
}
@@ -73,7 +80,12 @@ main(int argc, char *argv[])
goto closesock;
}
- xwrite(sock, argv[1], strlen(argv[1]) + 1); // include terminator
+ if (realpath(argv[1], abspath) == NULL) {
+ fprintf(stderr, "failed to get absolute path of %s\n", argv[1]);
+ goto closesock;
+ }
+
+ xwrite(sock, abspath, strlen(abspath) + 1); // include terminator
read_answer(sock);