28 lines
944 B
Diff
28 lines
944 B
Diff
---
|
|
src/unshar.c | 5 +++--
|
|
1 file changed, 3 insertions(+), 2 deletions(-)
|
|
|
|
Index: src/unshar.c
|
|
===================================================================
|
|
--- src/unshar.c.orig 2015-01-07 03:14:10.000000000 +0100
|
|
+++ src/unshar.c 2018-03-13 10:21:47.491268510 +0100
|
|
@@ -107,7 +107,8 @@ looks_like_c_code (char const * buf)
|
|
static bool
|
|
looks_like_shell_code (char const * buf)
|
|
{
|
|
- while (isspace ((int) *buf)) buf++;
|
|
+ intptr_t buf_end = (intptr_t)buf + rw_base_size;
|
|
+ while (isspace ((int) *buf) && buf < buf_end) buf++;
|
|
switch (*buf)
|
|
{
|
|
case '#': case ':':
|
|
@@ -240,7 +241,7 @@ find_archive (char const * name, FILE *
|
|
off_t position = ftello (file);
|
|
|
|
/* Read next line, fail if no more and no previous process. */
|
|
- if (!fgets (rw_buffer, BUFSIZ, file))
|
|
+ if (!fgets (rw_buffer, GET_PAGE_SIZE, file))
|
|
{
|
|
if (!start)
|
|
error (0, 0, _("Found no shell commands in %s"), name);
|