mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Modified cSVDRP::CmdGRAB() to avoid writing into const data
This commit is contained in:
13
svdrp.c
13
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 2.4 2009/06/06 13:42:52 kls Exp $
|
||||
* $Id: svdrp.c 2.5 2009/06/06 14:03:55 kls Exp $
|
||||
*/
|
||||
|
||||
#include "svdrp.h"
|
||||
@@ -798,16 +798,17 @@ void cSVDRP::CmdGRAB(const char *Option)
|
||||
char RealFileName[PATH_MAX];
|
||||
if (FileName) {
|
||||
if (grabImageDir) {
|
||||
cString s;
|
||||
char *slash = strrchr(FileName, '/');
|
||||
cString s(FileName);
|
||||
FileName = s;
|
||||
const char *slash = strrchr(FileName, '/');
|
||||
if (!slash) {
|
||||
s = AddDirectory(grabImageDir, FileName);
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user