ffmpeg | branch: master | Hendrik Leppkes <h.lepp...@gmail.com> | Mon Aug 3 22:02:17 2015 +0200| [2ab5002e3cd27cfa8f70035369d554c97739c4d0] | committer: Hendrik Leppkes
ffmpeg: avoid scanf in keyboard command parsing Mixing stdio and low-level IO on stdin is not safe. > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2ab5002e3cd27cfa8f70035369d554c97739c4d0 --- ffmpeg.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ffmpeg.c b/ffmpeg.c index 5575e2f..206b3dc 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -3428,9 +3428,17 @@ static int check_keyboard_interaction(int64_t cur_time) if(!debug) debug = 1; while(debug & (FF_DEBUG_DCT_COEFF|FF_DEBUG_VIS_QP|FF_DEBUG_VIS_MB_TYPE)) //unsupported, would just crash debug += debug; - }else - if(scanf("%d", &debug)!=1) + }else{ + char buf[32]; + int k = 0; + i = 0; + while ((k = read_key()) != '\n' && k != '\r' && i < sizeof(buf)-1) + if (k > 0) + buf[i++] = k; + buf[i] = 0; + if (k <= 0 || sscanf(buf, "%d", &debug)!=1) fprintf(stderr,"error parsing debug value\n"); + } for(i=0;i<nb_input_streams;i++) { input_streams[i]->st->codec->debug = debug; } _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog