[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] trunk r113137: * process.c (wait_reading_process_output):
From: |
Paul Eggert |
Subject: |
[Emacs-diffs] trunk r113137: * process.c (wait_reading_process_output): Avoid int overflow |
Date: |
Sat, 22 Jun 2013 16:43:42 +0000 |
User-agent: |
Bazaar (2.6b2) |
------------------------------------------------------------
revno: 113137
revision-id: address@hidden
parent: address@hidden
committer: Paul Eggert <address@hidden>
branch nick: trunk
timestamp: Sat 2013-06-22 09:43:39 -0700
message:
* process.c (wait_reading_process_output): Avoid int overflow
when reading more than 2 GiB total from a process.
modified:
src/ChangeLog changelog-20091113204419-o5vbwnq5f7feedwu-1438
src/process.c process.c-20091113204419-o5vbwnq5f7feedwu-462
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog 2013-06-21 22:16:37 +0000
+++ b/src/ChangeLog 2013-06-22 16:43:39 +0000
@@ -1,3 +1,8 @@
+2013-06-22 Paul Eggert <address@hidden>
+
+ * process.c (wait_reading_process_output): Avoid int overflow
+ when reading more than 2 GiB total from a process.
+
2013-06-21 Paul Eggert <address@hidden>
* process.c (create_process): Handle a couple more cases,
=== modified file 'src/process.c'
--- a/src/process.c 2013-06-21 22:16:37 +0000
+++ b/src/process.c 2013-06-22 16:43:39 +0000
@@ -4430,7 +4430,7 @@
&& ! EQ (wait_proc->status, Qrun)
&& ! EQ (wait_proc->status, Qconnect))
{
- int nread, total_nread = 0;
+ bool read_some_bytes = 0;
clear_waiting_for_input ();
XSETPROCESS (proc, wait_proc);
@@ -4438,16 +4438,13 @@
/* Read data from the process, until we exhaust it. */
while (wait_proc->infd >= 0)
{
- nread = read_process_output (proc, wait_proc->infd);
+ int nread = read_process_output (proc, wait_proc->infd);
if (nread == 0)
break;
if (nread > 0)
- {
- total_nread += nread;
- got_some_input = 1;
- }
+ got_some_input = read_some_bytes = 1;
else if (nread == -1 && (errno == EIO || errno == EAGAIN))
break;
#ifdef EWOULDBLOCK
@@ -4455,7 +4452,7 @@
break;
#endif
}
- if (total_nread > 0 && do_display)
+ if (read_some_bytes && do_display)
redisplay_preserve_echo_area (10);
break;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] trunk r113137: * process.c (wait_reading_process_output): Avoid int overflow,
Paul Eggert <=