if (tmp_file == NULL)
g_ptr_array_index(proc->process_files_table, fd) = file;
else {
- if (strcmp(tmp_file->name, file->name) != 0) {
+ if (!tmp_file->name ||
+ strcmp(tmp_file->name, file->name) != 0) {
size = proc->process_files_table->len;
g_ptr_array_set_size(proc->process_files_table,
size+1);
return;
if (fd >= proc->process_files_table->len) {
tmp = g_new0(struct files, 1);
- tmp->name = "Unknown";
+ tmp->name = NULL;
tmp->read = 0;
tmp->write = 0;
tmp->fd = fd;
tmp = g_ptr_array_index(proc->process_files_table, fd);
if (tmp == NULL) {
tmp = g_new0(struct files, 1);
- tmp->name = "Unknown";
+ tmp->name = NULL;
tmp->read = 0;
tmp->write = 0;
tmp->fd = fd;
if (parent) {
tmp_parent = g_ptr_array_index(
parent->process_files_table, fd);
- if (tmp_parent &&
+ if (tmp_parent && tmp->name && tmp_parent->name &&
(strcmp(tmp->name, tmp_parent->name)) != 0)
tmp->name = strdup(tmp_parent->name);
}
if (file != NULL) {
file->flag = __NR_close;
lttngtop.nbfiles--;
+ if (file->name) {
+ free(file->name);
+ file->name = NULL;
+ }
}
lttngtop.nbclosedfiles++;
}