diff options
| author | Sumit Bose <sbose@redhat.com> | 2010-04-22 11:44:46 +0200 |
|---|---|---|
| committer | Stephen Gallagher <sgallagh@redhat.com> | 2010-04-26 09:55:09 -0400 |
| commit | 2e2bebb263d2734f29da6cfb85eeb08a38c50298 (patch) | |
| tree | ce5139c32f55b3185b697b2f870834190c845031 /src | |
| parent | 15cb60aa3de20f3d6869fb7b4b3fcac2b6b1dca4 (diff) | |
Fix a potential memory violation
If read() returns with errno set to EINTR -1 is added to total_len.
Diffstat (limited to 'src')
| -rw-r--r-- | src/monitor/monitor.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c index d0863092..9f5c2d38 100644 --- a/src/monitor/monitor.c +++ b/src/monitor/monitor.c @@ -1371,7 +1371,8 @@ static void process_config_file(struct tevent_context *ev, while (total_len < event_size) { len = read(file_ctx->mt_ctx->inotify_fd, buf+total_len, event_size-total_len); - if (len == -1 && errno != EINTR) { + if (len == -1) { + if (errno == EINTR) continue; DEBUG(0, ("Critical error reading inotify file descriptor.\n")); goto done; } @@ -1391,7 +1392,8 @@ static void process_config_file(struct tevent_context *ev, total_len = 0; while (total_len < in_event->len) { len = read(file_ctx->mt_ctx->inotify_fd, &name, in_event->len); - if (len == -1 && errno != EINTR) { + if (len == -1) { + if (errno == EINTR) continue; DEBUG(0, ("Critical error reading inotify file descriptor.\n")); goto done; } |
