Skip to content
Snippets Groups Projects
Commit e2869fee authored by David Garcia Quintas's avatar David Garcia Quintas
Browse files

Simply return 0 on input path too long

parent f05359f6
No related branches found
No related tags found
No related merge requests found
...@@ -49,12 +49,12 @@ ...@@ -49,12 +49,12 @@
int parse_unix(grpc_uri *uri, grpc_resolved_address *resolved_addr) { int parse_unix(grpc_uri *uri, grpc_resolved_address *resolved_addr) {
struct sockaddr_un *un = (struct sockaddr_un *)resolved_addr->addr; struct sockaddr_un *un = (struct sockaddr_un *)resolved_addr->addr;
const size_t maxlen = sizeof(un->sun_path);
const size_t path_len = strnlen(uri->path, maxlen);
if (path_len == maxlen) return 0;
un->sun_family = AF_UNIX; un->sun_family = AF_UNIX;
strncpy(un->sun_path, uri->path, sizeof(un->sun_path) - 1 /* null term'd */); strcpy(un->sun_path, uri->path);
un->sun_path[sizeof(un->sun_path) - 1] = '\0'; resolved_addr->len = path_len + sizeof(un->sun_family) + 1;
resolved_addr->len = strlen(un->sun_path) + sizeof(un->sun_family) + 1;
return 1; return 1;
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment