Merge pull request #7499 from taosdata/fix/TD-6164
[TD-6164]<fix>: fix deadlock with fopen's malloc
This commit is contained in:
commit
ad39459b59
|
@ -44,14 +44,20 @@ char cmdline[1024];
|
||||||
|
|
||||||
char* taosGetCmdlineByPID(int pid) {
|
char* taosGetCmdlineByPID(int pid) {
|
||||||
sprintf(cmdline, "/proc/%d/cmdline", pid);
|
sprintf(cmdline, "/proc/%d/cmdline", pid);
|
||||||
FILE* f = fopen(cmdline, "r");
|
|
||||||
if (f) {
|
int fd = open(cmdline, O_RDONLY);
|
||||||
size_t size;
|
if (fd >= 0) {
|
||||||
size = fread(cmdline, sizeof(char), 1024, f);
|
int n = read(fd, cmdline, sizeof(cmdline) - 1);
|
||||||
if (size > 0) {
|
if (n < 0) n = 0;
|
||||||
if ('\n' == cmdline[size - 1]) cmdline[size - 1] = '\0';
|
|
||||||
}
|
if (n > 0 && cmdline[n - 1] == '\n') --n;
|
||||||
fclose(f);
|
|
||||||
|
cmdline[n] = 0;
|
||||||
|
|
||||||
|
close(fd);
|
||||||
|
} else {
|
||||||
|
cmdline[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return cmdline;
|
return cmdline;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue