summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2012-02-14 13:55:52 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2012-02-14 13:55:52 +0100
commit36b1caedc259a041277651c5ce29107823745418 (patch)
tree01438b0d270427acbb763d860621e68d429364ba
parent6715f4048407bb4db430f3181d29ee71a9069653 (diff)
downloadvdr-36b1caedc259a041277651c5ce29107823745418.tar.gz
vdr-36b1caedc259a041277651c5ce29107823745418.tar.bz2
Modified cSVDRP::CmdGRAB() to avoid writing into const data (backport from version 1.7.8)
-rw-r--r--CONTRIBUTORS2
-rw-r--r--HISTORY2
-rw-r--r--svdrp.c8
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 <dl4mw@schueler.ws>
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);