15e6e8572f
- added mawk-1.3.4-fix-regex-matching.patch which adds limit-check after processing match(test, "[^0-9A-Za-z]") to ensure the internal trailing null of the test-string is not mistaken for part of the string (backported from development snapshot, bnc#740484) - specfile cleanup OBS-URL: https://build.opensuse.org/request/show/99588 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/mawk?expand=0&rev=8
50 lines
1.5 KiB
Diff
50 lines
1.5 KiB
Diff
diff -urNp mawk-1.3.4.orig/files.c mawk-1.3.4/files.c
|
|
--- mawk-1.3.4.orig/files.c 2009-12-17 01:06:51.000000000 +0100
|
|
+++ mawk-1.3.4/files.c 2012-01-09 22:07:45.667127645 +0100
|
|
@@ -506,7 +506,7 @@ remove_from_child_list(int pid)
|
|
int
|
|
wait_for(int pid)
|
|
{
|
|
- int exit_status;
|
|
+ int exit_status = 0;
|
|
struct child *p;
|
|
int id;
|
|
|
|
diff -urNp mawk-1.3.4.orig/fin.c mawk-1.3.4/fin.c
|
|
--- mawk-1.3.4.orig/fin.c 2009-12-17 01:06:57.000000000 +0100
|
|
+++ mawk-1.3.4/fin.c 2012-01-09 22:07:45.667127645 +0100
|
|
@@ -317,7 +317,7 @@ FINgets(FIN * fin, unsigned *len_p)
|
|
unsigned rr;
|
|
unsigned amount = (unsigned) (fin->limit - p);
|
|
|
|
- p = (char *) memcpy(fin->buff, p, r = (unsigned) (fin->limit - p));
|
|
+ p = (char *) memmove(fin->buff, p, r = (unsigned) (fin->limit - p));
|
|
q = p + r;
|
|
rr = fin->nbuffs * BUFFSZ - r;
|
|
|
|
diff -urNp mawk-1.3.4.orig/rexp3.c mawk-1.3.4/rexp3.c
|
|
--- mawk-1.3.4.orig/rexp3.c 2009-12-15 02:50:07.000000000 +0100
|
|
+++ mawk-1.3.4/rexp3.c 2012-01-09 22:07:45.668127668 +0100
|
|
@@ -149,7 +149,10 @@ REmatch(char *str, /* string to test */
|
|
goto reswitch;
|
|
|
|
case M_STR + U_ON + END_OFF:
|
|
- if (!(s = str_str(s, str_len, m->s_data.str, m->s_len))) {
|
|
+ if (s >= str_end) {
|
|
+ goto refill;
|
|
+ }
|
|
+ if (!(s = str_str(s, (unsigned) (str_end - s), m->s_data.str, m->s_len))) {
|
|
goto refill;
|
|
}
|
|
if (s >= str + strlen(str)) {
|
|
@@ -229,6 +232,9 @@ REmatch(char *str, /* string to test */
|
|
s++;
|
|
}
|
|
}
|
|
+ if (s >= str_end) {
|
|
+ goto refill;
|
|
+ }
|
|
s++;
|
|
push(m, s, ss, U_ON);
|
|
if (!ss) {
|