commit c9c015d27a3599344c7b8e1b6c24d334a5e05e59
parent 4a696c49c212552938b1a8cab587a1d62e1ae5be
Author: Nihal Jere <nihal@nihaljere.xyz>
Date: Sun, 5 Jul 2020 21:05:36 -0500
replaced strlcpy with memccpy, removed libbsd
Thanks to https://lists.suckless.org/dev/2007/33999.html
Diffstat:
2 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,8 +1,6 @@
LIBTLS_PKGCONF_PATH = /usr/lib/libressl/pkgconfig/
-LIBTLS_FLAGS = $(shell PKG_CONFIG_PATH=$(LIBTLS_PKGCONF_PATH) pkg-config --cflags --libs libtls)
-# link against libbsd for strlcpy on Linux, not necessary on BSD
-FLAGS = -lbsd $(LIBTLS_FLAGS)
+FLAGS = $(shell PKG_CONFIG_PATH=$(LIBTLS_PKGCONF_PATH) pkg-config --cflags --libs libtls)
CC = cc
diff --git a/tlsrp.c b/tlsrp.c
@@ -1,6 +1,5 @@
#include <stdio.h>
#include <string.h>
-#include <bsd/string.h>
#include <stdarg.h>
#include <stdlib.h>
#include <unistd.h>
@@ -17,8 +16,6 @@
#include "util.h"
#include "config.h"
-// capped at 104 for portability
-#define SUN_PATH_LENGTH 104
#define BACKLOG 10
#define BUF_SIZE 1024
#define TIMEOUT 1000
@@ -70,13 +67,11 @@ dounixconnect(const char *sockname)
int sfd;
struct sockaddr_un saddr = {0};
- if (strlen(sockname) > SUN_PATH_LENGTH-1)
+ if (!memccpy(saddr.sun_path, sockname, '\0', sizeof(saddr.sun_path)))
die("unix socket path too long");
saddr.sun_family = AF_UNIX;
- strlcpy((char *) &saddr.sun_path, sockname, SUN_PATH_LENGTH);
-
if ((sfd = socket(AF_UNIX, SOCK_STREAM, 0)) == -1)
die("failed to create unix socket:");