From 441ea0ce91d9df7e653c7a9598a62f230cf808c0 Mon Sep 17 00:00:00 2001 From: Stefano Sabatini Date: Mon, 3 May 2010 21:56:21 +0000 Subject: [PATCH] Make av_strerror() print an error message mentioning the error code number if strerror_r() did not succeed for whatever reason. This avoids the need for the application to fill the string in case strerror_r() fails, for example because the error code is not known. Originally committed as revision 23015 to svn://svn.ffmpeg.org/ffmpeg/trunk --- libavutil/error.c | 4 ++-- libavutil/error.h | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libavutil/error.c b/libavutil/error.c index a1a0b87a9e..3dd38a351c 100644 --- a/libavutil/error.c +++ b/libavutil/error.c @@ -36,9 +36,9 @@ int av_strerror(int errnum, char *errbuf, size_t errbuf_size) } else { #if HAVE_STRERROR_R ret = strerror_r(AVUNERROR(errnum), errbuf, errbuf_size); -#else - snprintf(errbuf, errbuf_size, "Error number %d occurred", errnum); #endif + if (!HAVE_STRERROR_R || ret < 0) + snprintf(errbuf, errbuf_size, "Error number %d occurred", errnum); } return ret; diff --git a/libavutil/error.h b/libavutil/error.h index abf9a57d70..a1b9ccc050 100644 --- a/libavutil/error.h +++ b/libavutil/error.h @@ -60,7 +60,8 @@ /** * Puts a description of the AVERROR code errnum in errbuf. * In case of failure the global variable errno is set to indicate the - * error. + * error. Even in case of failure av_strerror() will print a generic + * error message indicating the errnum provided to errbuf. * * @param errbuf_size the size in bytes of errbuf * @return 0 on success, a negative value otherwise