--- ps_orig.c 2006-01-07 00:03:44.000000000 +0100 +++ ps.c 2006-11-29 13:19:36.000000000 +0100 @@ -1232,7 +1232,9 @@ quoted = 1; line++; while(*line && !(*line == ')' && level == 0)) { - if(*line == '\\') { + if (cp - text >= PSLINELENGTH - 1) + break; + if(*line == '\\') { if(*(line + 1) == 'n') { *cp++ = '\n'; line += 2; @@ -1302,8 +1304,11 @@ } } else { - while(*line && !(*line == ' ' || *line == '\t' || *line == '\n')) - *cp++ = *line++; + while(*line && !(*line == ' ' || *line == '\t' || *line == '\n')) { + if (cp - text >= PSLINELENGTH - 2) + break; + *cp++ = *line++; + } } *cp = '\0'; if(next_char)