From 36b1caedc259a041277651c5ce29107823745418 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Tue, 14 Feb 2012 13:55:52 +0100 Subject: Modified cSVDRP::CmdGRAB() to avoid writing into const data (backport from version 1.7.8) --- CONTRIBUTORS | 2 ++ HISTORY | 2 ++ svdrp.c | 8 ++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 043c6653..495c2276 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -2369,3 +2369,5 @@ Ralf Schueler to 1.6.0-3 for backporting "Added some missing 'const' keywords to avoid compilation errors with gcc 4.4" from version 1.7.8 to 1.6.0-3 + for backporting "Modified cSVDRP::CmdGRAB() to avoid writing into const data" + from version 1.7.8 to 1.6.0-3 diff --git a/HISTORY b/HISTORY index 78050083..4ec9ff2a 100644 --- a/HISTORY +++ b/HISTORY @@ -5765,3 +5765,5 @@ Video Disk Recorder Revision History (backport from version 1.7.3, thanks to Ralf Schueler). - Added some missing 'const' keywords to avoid compilation errors with gcc 4.4 (backport from version 1.7.8, thanks to Ralf Schueler). +- Modified cSVDRP::CmdGRAB() to avoid writing into const data + (backport from version 1.7.8, thanks to Ralf Schueler). diff --git a/svdrp.c b/svdrp.c index 7607965a..3d699a55 100644 --- a/svdrp.c +++ b/svdrp.c @@ -10,7 +10,7 @@ * and interact with the Video Disk Recorder - or write a full featured * graphical interface that sits on top of an SVDRP connection. * - * $Id: svdrp.c 1.109.1.2 2012/02/14 13:52:35 kls Exp $ + * $Id: svdrp.c 1.109.1.3 2012/02/14 13:55:52 kls Exp $ */ #include "svdrp.h" @@ -803,9 +803,9 @@ void cSVDRP::CmdGRAB(const char *Option) FileName = s; } slash = strrchr(FileName, '/'); // there definitely is one - *slash = 0; - char *r = realpath(FileName, RealFileName); - *slash = '/'; + cString t(s); + t.Truncate(slash - FileName); + char *r = realpath(t, RealFileName); if (!r) { LOG_ERROR_STR(FileName); Reply(501, "Invalid file name \"%s\"", FileName); -- cgit v1.2.3