summaryrefslogtreecommitdiffstats
path: root/src/Hooks
diff options
context:
space:
mode:
authorJiri Moskovcak <jmoskovc@redhat.com>2009-07-22 14:00:41 +0200
committerJiri Moskovcak <jmoskovc@redhat.com>2009-07-22 14:00:41 +0200
commitb7d2fee6c37dd3455b584aeb2263caceb4723141 (patch)
tree7dd07f93ce2ae1b1224014ee0c72e4038b3729c1 /src/Hooks
parent5128bfe04616a66512b9535a3f80edfa5e509b80 (diff)
parentb1cc33e1227d6ab47781a47f7a88da24e57f4e17 (diff)
downloadabrt-b7d2fee6c37dd3455b584aeb2263caceb4723141.tar.gz
abrt-b7d2fee6c37dd3455b584aeb2263caceb4723141.tar.xz
abrt-b7d2fee6c37dd3455b584aeb2263caceb4723141.zip
Merge branch 'master' of ssh://git.fedorahosted.org/git/abrt
Diffstat (limited to 'src/Hooks')
-rw-r--r--src/Hooks/CCpp.cpp33
1 files changed, 16 insertions, 17 deletions
diff --git a/src/Hooks/CCpp.cpp b/src/Hooks/CCpp.cpp
index 2a7e60c2..27c813fe 100644
--- a/src/Hooks/CCpp.cpp
+++ b/src/Hooks/CCpp.cpp
@@ -79,20 +79,23 @@ char* get_cmdline(const char* pid)
FILE* fp = fopen(path, "r");
int ch;
int ii = 0;
- while ((ch = fgetc(fp)) != EOF)
+ if (fp)
{
- if (ch == 0)
+ while ((ch = fgetc(fp)) != EOF && ii < COMMAND_LINE_SIZE-1)
{
- cmdline[ii] = ' ';
- }
- else if (isspace(ch) || (isascii(ch) && !iscntrl(ch)))
- {
- cmdline[ii] = ch;
+ if (ch == 0)
+ {
+ cmdline[ii] = ' ';
+ }
+ else if (isspace(ch) || (isascii(ch) && !iscntrl(ch)))
+ {
+ cmdline[ii] = ch;
+ }
+ ii++;
}
- ii++;
+ fclose(fp);
}
cmdline[ii] = '\0';
- fclose(fp);
return strdup(cmdline);
}
@@ -103,23 +106,19 @@ int daemon_is_ok()
char pid[PID_MAX];
char path[PATH_MAX];
struct stat buff;
- FILE* fp;
- if ((fp = fopen(VAR_RUN_PID_FILE, "r")) == NULL)
+ FILE* fp = fopen(VAR_RUN_PID_FILE, "r");
+ if (fp == NULL)
{
return 0;
}
fgets(pid, sizeof(pid), fp);
- if (strrchr(pid, '\n') != NULL)
- {
- char* newline = strrchr(pid, '\n');
- *newline = '\0';
- }
+ fclose(fp);
+ *strchrnul(pid, '\n') = '\0';
snprintf(path, sizeof(path), "/proc/%s/stat", pid);
if (stat(path, &buff) == -1)
{
return 0;
}
- fclose(fp);
return 1;
}