From: Tilghman Lesher Date: Tue, 16 Jan 2007 21:28:39 +0000 (+0000) Subject: Merged revisions 51158 via svnmerge from X-Git-Tag: 1.4.1~273 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=87ea385650c88acae34a96e4435597885a82552c;p=thirdparty%2Fasterisk.git Merged revisions 51158 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.2 ........ r51158 | tilghman | 2007-01-16 15:26:06 -0600 (Tue, 16 Jan 2007) | 2 lines Postgres driver doesn't like a NULL pointer when retrieving the length (Bug 8513) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@51159 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index af8ad54471..c54e51e501 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -1057,7 +1057,7 @@ static int retrieve_file(char *dir, int msgnum) } if (!strcasecmp(coltitle, "recording")) { off_t offset; - res = SQLGetData(stmt, x + 1, SQL_BINARY, NULL, 0, &colsize2); + res = SQLGetData(stmt, x + 1, SQL_BINARY, rowdata, 0, &colsize2); fdlen = colsize2; if (fd > -1) { char tmp[1]=""; @@ -1069,15 +1069,14 @@ static int retrieve_file(char *dir, int msgnum) } /* Read out in small chunks */ for (offset = 0; offset < colsize2; offset += CHUNKSIZE) { - /* +1 because SQLGetData likes null-terminating binary data */ - if ((fdm = mmap(NULL, CHUNKSIZE + 1, PROT_READ | PROT_WRITE, MAP_SHARED, fd, offset)) == (void *)-1) { + if ((fdm = mmap(NULL, CHUNKSIZE, PROT_READ | PROT_WRITE, MAP_SHARED, fd, offset)) == (void *)-1) { ast_log(LOG_WARNING, "Could not mmap the output file: %s (%d)\n", strerror(errno), errno); SQLFreeHandle(SQL_HANDLE_STMT, stmt); ast_odbc_release_obj(obj); goto yuck; } else { - res = SQLGetData(stmt, x + 1, SQL_BINARY, fdm, CHUNKSIZE + 1, NULL); - munmap(fdm, 0); + res = SQLGetData(stmt, x + 1, SQL_BINARY, fdm, CHUNKSIZE, NULL); + munmap(fdm, CHUNKSIZE); if ((res != SQL_SUCCESS) && (res != SQL_SUCCESS_WITH_INFO)) { ast_log(LOG_WARNING, "SQL Get Data error!\n[%s]\n\n", sql); unlink(full_fn);