Merge "notify: dynamically allocate filename buffer"
This commit is contained in:
commit
caed3d9fae
1 changed files with 8 additions and 4 deletions
|
|
@ -101,14 +101,17 @@ int notify_main(int argc, char *argv[])
|
||||||
else if(verbose >= 1)
|
else if(verbose >= 1)
|
||||||
printf("%d: %08x \"%s\"\n", event->wd, event->mask, event->len ? event->name : "");
|
printf("%d: %08x \"%s\"\n", event->wd, event->mask, event->len ? event->name : "");
|
||||||
if(print_files && (event->mask & IN_MODIFY)) {
|
if(print_files && (event->mask & IN_MODIFY)) {
|
||||||
char filename[512];
|
char* filename = file_names[event->wd + id_offset];
|
||||||
|
char* alloc_buf = NULL;
|
||||||
ssize_t read_len;
|
ssize_t read_len;
|
||||||
char *display_name;
|
char *display_name;
|
||||||
int buflen;
|
int buflen;
|
||||||
strcpy(filename, file_names[event->wd + id_offset]);
|
|
||||||
if(event->len) {
|
if(event->len) {
|
||||||
strcat(filename, "/");
|
if(asprintf(&alloc_buf, "%s/%s", filename, event->name) < 0) {
|
||||||
strcat(filename, event->name);
|
fprintf(stderr, "asprintf failed, %s\n", strerror(errno));
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
filename = alloc_buf;
|
||||||
}
|
}
|
||||||
ffd = open(filename, O_RDONLY);
|
ffd = open(filename, O_RDONLY);
|
||||||
display_name = (verbose >= 2 || event->len == 0) ? filename : event->name;
|
display_name = (verbose >= 2 || event->len == 0) ? filename : event->name;
|
||||||
|
|
@ -132,6 +135,7 @@ int notify_main(int argc, char *argv[])
|
||||||
printf("%s: %s", display_name, buf);
|
printf("%s: %s", display_name, buf);
|
||||||
}
|
}
|
||||||
close(ffd);
|
close(ffd);
|
||||||
|
free(alloc_buf);
|
||||||
}
|
}
|
||||||
if(event_count && --event_count == 0)
|
if(event_count && --event_count == 0)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue