mirror of https://github.com/martanne/abduco
Simplify maximum socket name length check
This commit is contained in:
parent
98ac772a97
commit
64920e5977
5
abduco.c
5
abduco.c
|
|
@ -253,12 +253,11 @@ static int create_socket_dir(struct sockaddr_un *sockaddr) {
|
||||||
static bool set_socket_name(struct sockaddr_un *sockaddr, const char *name) {
|
static bool set_socket_name(struct sockaddr_un *sockaddr, const char *name) {
|
||||||
size_t maxlen = sizeof(sockaddr->sun_path);
|
size_t maxlen = sizeof(sockaddr->sun_path);
|
||||||
if (name[0] == '/') {
|
if (name[0] == '/') {
|
||||||
strncpy(sockaddr->sun_path, name, maxlen);
|
if (strlen(name) >= maxlen) {
|
||||||
if (sockaddr->sun_path[maxlen-1]) {
|
|
||||||
sockaddr->sun_path[maxlen-1] = '\0';
|
|
||||||
errno = ENAMETOOLONG;
|
errno = ENAMETOOLONG;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
strncpy(sockaddr->sun_path, name, maxlen);
|
||||||
} else if (name[0] == '.' && (name[1] == '.' || name[1] == '/')) {
|
} else if (name[0] == '.' && (name[1] == '.' || name[1] == '/')) {
|
||||||
char buf[maxlen], *cwd = getcwd(buf, sizeof buf);
|
char buf[maxlen], *cwd = getcwd(buf, sizeof buf);
|
||||||
if (!cwd)
|
if (!cwd)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue