mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-03 11:25:35 +00:00
formats: Restore previous fread() behavior
Some formats are able to handle short reads while others are not, so restore the previous behavior for the format modules so that we don't have spurious errors when playing back files. ASTERISK-27232 #close Reported by: Jens T. Change-Id: Iab7f52b25a394f277566c8a2a4b15a692280a300
This commit is contained in:
@@ -40,20 +40,15 @@
|
||||
|
||||
static struct ast_frame *g719read(struct ast_filestream *s, int *whennext)
|
||||
{
|
||||
int res;
|
||||
/* Send a frame from the file to the appropriate channel */
|
||||
size_t res;
|
||||
|
||||
/* Send a frame from the file to the appropriate channel */
|
||||
AST_FRAME_SET_BUFFER(&s->fr, s->buf, AST_FRIENDLY_OFFSET, BUF_SIZE);
|
||||
if ((res = fread(s->fr.data.ptr, 1, s->fr.datalen, s->f)) != s->fr.datalen) {
|
||||
if (feof(s->f)) {
|
||||
if (res) {
|
||||
ast_debug(3, "Incomplete frame data at end of %s file "
|
||||
"(expected %d bytes, read %d)\n",
|
||||
ast_format_get_name(s->fr.subclass.format), s->fr.datalen, res);
|
||||
}
|
||||
} else {
|
||||
ast_log(LOG_ERROR, "Error while reading %s file: %s\n",
|
||||
ast_format_get_name(s->fr.subclass.format), strerror(errno));
|
||||
if (res) {
|
||||
ast_log(LOG_WARNING, "Short read of %s data (expected %d bytes, read %zu): %s\n",
|
||||
ast_format_get_name(s->fr.subclass.format), s->fr.datalen, res,
|
||||
strerror(errno));
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
Reference in New Issue
Block a user