Prevent against OOB read write
This commit is contained in:
parent
2a8d5b1a6b
commit
b18e5fe83f
1 changed files with 5 additions and 5 deletions
10
smu.c
10
smu.c
|
@ -232,7 +232,7 @@ dolineprefix(const char *begin, const char *end, int newblock) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Skip empty lines in block */
|
/* Skip empty lines in block */
|
||||||
while(*(buffer + j - 1) == '\n') {
|
while(buffer + j - 1 >= buffer && *(buffer + j - 1) == '\n') {
|
||||||
j--;
|
j--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -557,7 +557,7 @@ dounderline(const char *begin, const char *end, int newblock) {
|
||||||
if(l == 0)
|
if(l == 0)
|
||||||
return 0;
|
return 0;
|
||||||
for(i = 0; i < LENGTH(underline); i++) {
|
for(i = 0; i < LENGTH(underline); i++) {
|
||||||
for(j = 0; p + j != end && p[j] != '\n' && p[j] == underline[i].search[0]; j++);
|
for(j = 0; p + j < end && p[j] != '\n' && p[j] == underline[i].search[0]; j++);
|
||||||
if(j >= l) {
|
if(j >= l) {
|
||||||
fputs(underline[i].before, stdout);
|
fputs(underline[i].before, stdout);
|
||||||
if(underline[i].process)
|
if(underline[i].process)
|
||||||
|
@ -588,7 +588,7 @@ void
|
||||||
hprint(const char *begin, const char *end) {
|
hprint(const char *begin, const char *end) {
|
||||||
const char *p;
|
const char *p;
|
||||||
|
|
||||||
for(p = begin; p != end; p++) {
|
for(p = begin; p < end; p++) {
|
||||||
if(*p == '&')
|
if(*p == '&')
|
||||||
fputs("&", stdout);
|
fputs("&", stdout);
|
||||||
else if(*p == '"')
|
else if(*p == '"')
|
||||||
|
@ -624,10 +624,10 @@ process(const char *begin, const char *end, int newblock) {
|
||||||
fputc(*p, stdout);
|
fputc(*p, stdout);
|
||||||
p++;
|
p++;
|
||||||
}
|
}
|
||||||
for(q = p; q != end && *q == '\n'; q++);
|
for(q = p; q < end && *q == '\n'; q++);
|
||||||
if(q == end)
|
if(q == end)
|
||||||
return;
|
return;
|
||||||
else if(p[0] == '\n' && p + 1 != end && p[1] == '\n')
|
else if(p < end && p[0] == '\n' && p + 1 < end && p[1] == '\n')
|
||||||
newblock = 1;
|
newblock = 1;
|
||||||
else
|
else
|
||||||
newblock = affected < 0;
|
newblock = affected < 0;
|
||||||
|
|
Loading…
Add table
Reference in a new issue