Make print_error() use strerror() in case av_strerror() fails.
authorStefano Sabatini <stefano.sabatini-lala@poste.it>
Wed, 5 May 2010 21:44:54 +0000 (21:44 +0000)
committerStefano Sabatini <stefano.sabatini-lala@poste.it>
Wed, 5 May 2010 21:44:54 +0000 (21:44 +0000)
Should provide a meaningful error message for systems which do not
support strerror_r().

Fix roundup issue #1894.

Originally committed as revision 23032 to svn://svn.ffmpeg.org/ffmpeg/trunk

cmdutils.c

index e6efc49..d02b36e 100644 (file)
@@ -292,6 +292,7 @@ void set_context_opts(void *ctx, void *opts_ctx, int flags)
 void print_error(const char *filename, int err)
 {
     char errbuf[128];
+    const char *errbuf_ptr = errbuf;
 
     switch(err) {
 #if CONFIG_NETWORK
@@ -300,8 +301,9 @@ void print_error(const char *filename, int err)
         break;
 #endif
     default:
-        av_strerror(err, errbuf, sizeof(errbuf));
-        fprintf(stderr, "%s: %s\n", filename, errbuf);
+        if (av_strerror(err, errbuf, sizeof(errbuf)) < 0)
+            errbuf_ptr = strerror(AVUNERROR(err));
+        fprintf(stderr, "%s: %s\n", filename, errbuf_ptr);
     }
 }