Merged revisions 237573 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r237573 | tilghman | 2010-01-04 15:45:46 -0600 (Mon, 04 Jan 2010) | 6 lines
  
  Bounds checking for input string
  (closes issue #16407)
   Reported by: qwell
   Patches: 
         20100104__issue16407.diff.txt uploaded by tilghman (license 14)
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@237574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
certified/1.8.6
Tilghman Lesher 16 years ago
parent 7acf8196d0
commit 3f33c38c8a

@ -3682,9 +3682,9 @@ int ast_say_date_with_format_en(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -3929,9 +3929,9 @@ int ast_say_date_with_format_da(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -4131,9 +4131,9 @@ int ast_say_date_with_format_de(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -4334,9 +4334,9 @@ int ast_say_date_with_format_th(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -4528,9 +4528,9 @@ int ast_say_date_with_format_he(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -4668,9 +4668,9 @@ int ast_say_date_with_format_es(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
snprintf(nextmsg, sizeof(nextmsg), "%s", sndfile);
res = wait_file(chan, ints, nextmsg, lang);
@ -4857,9 +4857,9 @@ int ast_say_date_with_format_fr(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -5052,9 +5052,9 @@ int ast_say_date_with_format_it(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -5282,9 +5282,9 @@ int ast_say_date_with_format_nl(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -5485,9 +5485,9 @@ int ast_say_date_with_format_pl(struct ast_channel *chan, time_t thetime, const
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset = 0;
for (sndoffset = 0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -5704,9 +5704,9 @@ int ast_say_date_with_format_pt(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
snprintf(nextmsg, sizeof(nextmsg), "%s", sndfile);
res = wait_file(chan, ints, nextmsg, lang);
@ -5996,9 +5996,9 @@ int ast_say_date_with_format_zh(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -7485,9 +7485,9 @@ static int ast_say_date_with_format_gr(struct ast_channel *chan, time_t t, const
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset=0;
for (sndoffset=0 ; (format[++offset] != '\'') && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;
@ -7657,9 +7657,9 @@ int ast_say_date_with_format_vi(struct ast_channel *chan, time_t t, const char *
/* NOTE: if you add more options here, please try to be consistent with strftime(3) */
case '\'':
/* Literal name of a sound file */
sndoffset = 0;
for (sndoffset = 0 ; (format[++offset] != '\'') && (sndoffset < 256) ; sndoffset++)
for (sndoffset = 0; !strchr("\'\0", format[++offset]) && (sndoffset < sizeof(sndfile) - 1) ; sndoffset++) {
sndfile[sndoffset] = format[offset];
}
sndfile[sndoffset] = '\0';
res = wait_file(chan, ints, sndfile, lang);
break;

Loading…
Cancel
Save