static void
_e_info_client_proc_protocol_trace(int argc, char **argv)
{
- char fd_name[PATH_MAX];
+ char fd_name[PATH_MAX + PATH_MAX];
int pid;
char cwd[PATH_MAX];
snprintf(cwd, sizeof(cwd), "/tmp");
if (!strncmp(argv[2], "console", 7))
- snprintf(fd_name, PATH_MAX, "/proc/%d/fd/1", pid);
+ snprintf(fd_name, sizeof(fd_name), "/proc/%d/fd/1", pid);
else if (!strncmp(argv[2], "elog", 4))
- snprintf(fd_name, PATH_MAX, "elog");
+ snprintf(fd_name, sizeof(fd_name), "elog");
else if (!strncmp(argv[2], "disable", 7))
- snprintf(fd_name, PATH_MAX, "disable");
+ snprintf(fd_name, sizeof(fd_name), "disable");
else
{
if (argv[2][0] == '/')
else
{
if (strlen(cwd) > 0)
- snprintf(fd_name, PATH_MAX, "%s/%s", cwd, argv[2]);
+ snprintf(fd_name, sizeof(fd_name), "%s/%s", cwd, argv[2]);
else
- snprintf(fd_name, PATH_MAX, "%s", argv[2]);
+ snprintf(fd_name, sizeof(fd_name), "%s", argv[2]);
}
}
static void
_e_info_client_proc_keygrab_status(int argc, char **argv)
{
- char fd_name[PATH_MAX];
+ char fd_name[PATH_MAX + PATH_MAX];
int pid;
char cwd[PATH_MAX];
snprintf(cwd, sizeof(cwd), "/tmp");
if (!strncmp(argv[2], "console", sizeof("console")))
- snprintf(fd_name, PATH_MAX, "/proc/%d/fd/1", pid);
+ snprintf(fd_name, sizeof(fd_name), "/proc/%d/fd/1", pid);
else
{
if (argv[2][0] == '/')
- snprintf(fd_name, PATH_MAX, "%s", argv[2]);
+ snprintf(fd_name, sizeof(fd_name), "%s", argv[2]);
else
{
if (strlen(cwd) > 0)
- snprintf(fd_name, PATH_MAX, "%s/%s", cwd, argv[2]);
+ snprintf(fd_name, sizeof(fd_name), "%s/%s", cwd, argv[2]);
else
- snprintf(fd_name, PATH_MAX, "%s", argv[2]);
+ snprintf(fd_name, sizeof(fd_name), "%s", argv[2]);
}
}
static char *
_directory_make(char *type, char *path)
{
- char dir[PATH_MAX], curdir[PATH_MAX], stamp[PATH_MAX];
+ char dir[2048], curdir[1024], stamp[256];
time_t timer;
struct tm *t, *buf;
char *fullpath;
}
if (path && path[0] == '/')
- snprintf(dir, PATH_MAX, "%s", path);
+ snprintf(dir, sizeof(dir), "%s", path);
else
{
- char *temp = getcwd(curdir, PATH_MAX);
+ char *temp = getcwd(curdir, 1024);
if (!temp)
{
free(buf);
}
if (path)
{
- if (strlen(curdir) == 1 && curdir[0] == '/')
- snprintf(dir, PATH_MAX, "/%s", path);
+ int len, cur_len;
+ cur_len = strlen(curdir);
+ len = sizeof(dir) - strlen(path) - cur_len - 2;
+
+ if (cur_len == 1 && curdir[0] == '/')
+ snprintf(dir, sizeof(dir), "/%s", path);
+ else if (len > 0)
+ snprintf(dir, sizeof(dir), "%s/%s", curdir, path);
else
- snprintf(dir, PATH_MAX, "%s/%s", curdir, path);
+ return NULL;
}
else
- snprintf(dir, PATH_MAX, "%s", curdir);
+ snprintf(dir, sizeof(dir), "%s", curdir);
}
if (!(dp = opendir (dir)))
closedir (dp);
/* make the folder for the result of xwd files */
- snprintf(stamp, PATH_MAX, "%04d%02d%02d.%02d%02d%02d", t->tm_year+1900, t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
+ snprintf(stamp, sizeof(stamp), "%04d%02d%02d.%02d%02d%02d", t->tm_year+1900, t->tm_mon+1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
if (strlen(dir) == 1 && dir[0] == '/')
snprintf(fullpath, PATH_MAX, "/%s-%s", type, stamp);
static void
_e_info_client_proc_eina_log_path(int argc, char **argv)
{
- char fd_name[PATH_MAX];
+ char fd_name[PATH_MAX + PATH_MAX];
int pid;
char cwd[PATH_MAX];
snprintf(cwd, sizeof(cwd), "/tmp");
if (!strncmp(argv[2], "console", 7))
- snprintf(fd_name, PATH_MAX, "/proc/%d/fd/1", pid);
+ snprintf(fd_name, sizeof(fd_name), "/proc/%d/fd/1", pid);
else
{
if (argv[2][0] == '/')
- snprintf(fd_name, PATH_MAX, "%s", argv[2]);
+ snprintf(fd_name, sizeof(fd_name), "%s", argv[2]);
else
{
if (strlen(cwd) > 0)
- snprintf(fd_name, PATH_MAX, "%s/%s", cwd, argv[2]);
+ snprintf(fd_name, sizeof(fd_name), "%s/%s", cwd, argv[2]);
else
- snprintf(fd_name, PATH_MAX, "%s", argv[2]);
+ snprintf(fd_name, sizeof(fd_name), "%s", argv[2]);
}
}
static char *
_buffer_shot_directory_check(char *path)
{
- char dir[PATH_MAX], curdir[PATH_MAX];
+ char dir[PATH_MAX], curdir[1024];
char *fullpath;
DIR *dp;
snprintf(dir, PATH_MAX, "%s", path);
else
{
- char *temp = getcwd(curdir, PATH_MAX);
+ char *temp = getcwd(curdir, 1024);
if (!temp)
{
free(fullpath);