]> git.sur5r.net Git - i3/i3/commitdiff
secure strscpy by replacing with strncpy
authorMichael Stapelberg <michael@stapelberg.de>
Sat, 23 Jul 2011 20:22:36 +0000 (22:22 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Sat, 23 Jul 2011 20:22:36 +0000 (22:22 +0200)
i3-input/ipc.c
i3-msg/main.c
src/ipc.c

index 597a86efd2630437f72f052af06a3c2caa61f11e..2d11f0e05a36c7077a92090d06366d0211dc649a 100644 (file)
@@ -60,7 +60,7 @@ int connect_ipc(char *socket_path) {
         struct sockaddr_un addr;
         memset(&addr, 0, sizeof(struct sockaddr_un));
         addr.sun_family = AF_LOCAL;
-        strcpy(addr.sun_path, socket_path);
+        strncpy(addr.sun_path, socket_path, sizeof(addr.sun_path) - 1);
         if (connect(sockfd, (const struct sockaddr*)&addr, sizeof(struct sockaddr_un)) < 0)
                 err(EXIT_FAILURE, "Could not connect to i3");
 
index ac08419fb274edbf2227f125ca5b403b8463d80c..630a345d63c6ce57dc611b19464d8a5b6da0f8cf 100644 (file)
@@ -231,7 +231,7 @@ int main(int argc, char *argv[]) {
     struct sockaddr_un addr;
     memset(&addr, 0, sizeof(struct sockaddr_un));
     addr.sun_family = AF_LOCAL;
-    strcpy(addr.sun_path, socket_path);
+    strncpy(addr.sun_path, socket_path, sizeof(addr.sun_path) - 1);
     if (connect(sockfd, (const struct sockaddr*)&addr, sizeof(struct sockaddr_un)) < 0)
         err(EXIT_FAILURE, "Could not connect to i3");
 
index 1dd9512a55ec79cca14b29a8fc5d5ac0f1a48832..acd09e8fb185c7c1cbbe3a1bda713392e5983c01 100644 (file)
--- a/src/ipc.c
+++ b/src/ipc.c
@@ -77,7 +77,7 @@ static void ipc_send_message(int fd, const unsigned char *payload,
     char msg[buffer_size];
     char *walk = msg;
 
-    strcpy(walk, "i3-ipc");
+    strncpy(walk, "i3-ipc", buffer_size - 1);
     walk += strlen("i3-ipc");
     memcpy(walk, &message_size, sizeof(uint32_t));
     walk += sizeof(uint32_t);