Use malloc() instead of alloca() to allocate a (potentially) large buffer
for storing the "diff -n" output. Some files (eg ports/INDEX,v) are too big nowadays to fit on the stack. Submitted by: Stephen Montgomery-Smith <stephen@math.missouri.edu>
This commit is contained in:
parent
b9927716c0
commit
68c42f006d
@ -218,7 +218,7 @@ Equ(const char *dir1, const char *dir2, const char *name, struct dirent *de)
|
||||
{
|
||||
u_long l = s2.st_size + 2;
|
||||
u_char *cmd = alloca(strlen(buf1)+strlen(buf2)+100);
|
||||
u_char *ob = alloca(l), *p;
|
||||
u_char *ob = malloc(l), *p;
|
||||
int j;
|
||||
FILE *F;
|
||||
|
||||
@ -292,6 +292,7 @@ Equ(const char *dir1, const char *dir2, const char *name, struct dirent *de)
|
||||
s_sub_files++;
|
||||
s_sub_bytes += s2.st_size;
|
||||
}
|
||||
free(ob);
|
||||
}
|
||||
finish:
|
||||
munmap(p1, s1.st_size);
|
||||
|
Loading…
Reference in New Issue
Block a user