mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed decoding filename characters in case there are not two hex digits after the '#'
This commit is contained in:
parent
c01249ffe5
commit
c568200d2e
@ -588,6 +588,8 @@ Helmut Auer <vdr@helmutauer.de>
|
||||
is a recording going on or about to start, and the user insists in shutting down now
|
||||
for suggesting to make the channel entry timeout configurable
|
||||
for a patch that was used to implement the SVDRP command REMO
|
||||
for reporting a possible crash in decoding filename characters in case there are
|
||||
not two hex digits after the '#'
|
||||
|
||||
Jeremy Hall <jhall@UU.NET>
|
||||
for fixing an incomplete initialization of the filter parameters in eit.c
|
||||
|
2
HISTORY
2
HISTORY
@ -5516,3 +5516,5 @@ Video Disk Recorder Revision History
|
||||
of their Makefiles.
|
||||
- Fixed a crash if no fonts are found (thanks to Mario Ivankovits and Clemens
|
||||
Kirchgatterer).
|
||||
- Fixed decoding filename characters in case there are not two hex digits after
|
||||
the '#' (reported by Helmut Auer).
|
||||
|
@ -4,10 +4,11 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: recording.c 1.156 2007/10/14 10:21:54 kls Exp $
|
||||
* $Id: recording.c 1.157 2007/11/04 11:17:43 kls Exp $
|
||||
*/
|
||||
|
||||
#include "recording.h"
|
||||
#include <ctype.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
@ -448,14 +449,16 @@ char *ExchangeChars(char *s, bool ToFileSystem)
|
||||
case '/': *p = '~'; break;
|
||||
// encoded characters:
|
||||
case '#': {
|
||||
if (strlen(p) > 2) {
|
||||
if (strlen(p) > 2 && isxdigit(*(p + 1)) && isxdigit(*(p + 2))) {
|
||||
char buf[3];
|
||||
sprintf(buf, "%c%c", *(p + 1), *(p + 2));
|
||||
unsigned char c = strtol(buf, NULL, 16);
|
||||
if (c) {
|
||||
*p = c;
|
||||
memmove(p + 1, p + 3, strlen(p) - 2);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
// backwards compatibility:
|
||||
case '\x01': *p = '\''; break;
|
||||
|
Loading…
Reference in New Issue
Block a user