Fixed using PATH_MAX and NAME_MAX (+/-1 because the first one includes the terminating 0, while the latter doesn't)

This commit is contained in:
Klaus Schmidinger 2013-03-11 11:07:59 +01:00
parent f3ca6f2083
commit bc72b7e6cd
5 changed files with 14 additions and 12 deletions

View File

@ -7735,3 +7735,5 @@ Video Disk Recorder Revision History
- Updated the Hungarian OSD texts (thanks to István Füley).
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- Updated the Polish OSD texts (thanks to Marek Nazarko).
- Fixed using PATH_MAX and NAME_MAX (+/-1 because the first one includes the
terminating 0, while the latter doesn't).

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: config.h 2.72 2013/03/10 15:52:11 kls Exp $
* $Id: config.h 2.74 2013/03/11 11:07:59 kls Exp $
*/
#ifndef __CONFIG_H
@ -27,8 +27,8 @@
// The plugin API's version number:
#define APIVERSION "1.7.40"
#define APIVERSNUM 10740 // Version * 10000 + Major * 100 + Minor
#define APIVERSION "1.7.41"
#define APIVERSNUM 10741 // Version * 10000 + Major * 100 + Minor
// When loading plugins, VDR searches them by their APIVERSION, which
// may be smaller than VDRVERSION in case there have been no changes to
@ -260,7 +260,7 @@ public:
int MenuScrollWrap;
int MenuKeyCloses;
int MarkInstantRecord;
char NameInstantRecord[NAME_MAX];
char NameInstantRecord[NAME_MAX + 1];
int InstantRecordTime;
int LnbSLOF;
int LnbFrequLo;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: recording.c 2.90 2013/03/04 14:02:40 kls Exp $
* $Id: recording.c 2.91 2013/03/11 10:34:41 kls Exp $
*/
#include "recording.h"
@ -66,7 +66,7 @@
#define MAX_LINK_LEVEL 6
int DirectoryPathMax = PATH_MAX;
int DirectoryPathMax = PATH_MAX - 1;
int DirectoryNameMax = NAME_MAX;
bool DirectoryEncoding = false;
int InstanceId = 0;

View File

@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
* $Id: timers.h 2.6 2013/02/05 11:23:24 kls Exp $
* $Id: timers.h 2.7 2013/03/11 10:35:53 kls Exp $
*/
#ifndef __TIMERS_H
@ -39,7 +39,7 @@ private:
int stop;
int priority;
int lifetime;
mutable char file[NAME_MAX * 2]; // *2 to be able to hold 'title' and 'episode', which can each be up to 255 characters long
mutable char file[NAME_MAX * 2 + 1]; // *2 to be able to hold 'title' and 'episode', which can each be up to 255 characters long
char *aux;
const cEvent *event;
public:

8
vdr.c
View File

@ -22,7 +22,7 @@
*
* The project's page is at http://www.tvdr.de
*
* $Id: vdr.c 2.50 2013/03/03 10:25:11 kls Exp $
* $Id: vdr.c 2.51 2013/03/11 10:31:24 kls Exp $
*/
#include <getopt.h>
@ -281,7 +281,7 @@ int main(int argc, char *argv[])
case 'd' | 0x100: {
char *s = optarg;
int n = strtol(s, &s, 10);
if (n <= 0 || n >= PATH_MAX) {
if (n <= 0 || n >= PATH_MAX) { // PATH_MAX includes the terminating 0
fprintf(stderr, "vdr: invalid directory path length: %s\n", optarg);
return 2;
}
@ -293,7 +293,7 @@ int main(int argc, char *argv[])
return 2;
}
n = strtol(s, &s, 10);
if (n <= 0 || n >= NAME_MAX) {
if (n <= 0 || n > NAME_MAX) { // NAME_MAX excludes the terminating 0
fprintf(stderr, "vdr: invalid directory name length: %s\n", optarg);
return 2;
}
@ -530,7 +530,7 @@ int main(int argc, char *argv[])
"\n",
DEFAULTCACHEDIR,
DEFAULTCONFDIR,
PATH_MAX,
PATH_MAX - 1,
NAME_MAX,
DEFAULTEPGDATAFILENAME,
MAXVIDEOFILESIZEDEFAULT,