int retry = CONNECT_RETRY_COUNT;
int fd;
+ if (sizeof(addr.sun_path) <= strlen(path)) {
+ _E("lenght of path is too long");
+ return -1;
+ }
+
fd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0);
if (fd < 0) {
_E("Failed to create socket(%s). errno(%d)", path, errno);
}
addr.sun_family = AF_UNIX;
- snprintf(addr.sun_path, sizeof(addr.sun_path), "%s", path);
+ strncpy(addr.sun_path, path, sizeof(addr.sun_path) - strlen(path) - 1);
while (connect(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
if (errno != ETIMEDOUT || retry <= 0) {
_E("Failed to connect socket(%s). errno(%d)",
{
DIR *dp;
struct dirent *dentry = NULL;
- char tmp[MAX_LOCAL_BUFSZ];
+ char tmp[PATH_MAX];
snprintf(tmp, sizeof(tmp), "/run/aul/apps/%d", getuid());
dp = opendir(tmp);
if (!isdigit(dentry->d_name[0]))
continue;
- snprintf(tmp, MAX_LOCAL_BUFSZ, "/proc/%s", dentry->d_name);
+ snprintf(tmp, sizeof(tmp), "/proc/%s", dentry->d_name);
if (access(tmp, F_OK) < 0) { /* Flawfinder: ignore */
_delete_sock_path(atoi(dentry->d_name), getuid());
continue;