[vdr] vdr 1.3.38: SVDRP grab filename
Klaus Schmidinger
Klaus.Schmidinger at cadsoft.de
Sat Jan 14 12:43:44 CET 2006
Stefan Huelswitt wrote:
> Hi,
>
> as far as I see, the new SVDRP grab code always prepends the
> given filename with the grabdirectory (given with -g) even if the
> filename in the grab command is actualy a full path.
>
> Is this change intended?
>
> I yes, may be this should be documented somewhere, as it's not
> backward compatible with older vdr versions.
> But I don't see a reason why it's necessary. The path check later
> will catch a wrong path anyways.
>
> I'd suggested something like (defaulting to jpeg with no filename
> extention for enhanced backward compatibility too):
>
> --- svdrp.c.orig 2005-12-30 16:42:29.000000000 +0100
> +++ svdrp.c 2006-01-09 19:15:51.000000000 +0100
> @@ -682,8 +682,7 @@
> else if (strcmp(FileName, "-") == 0)
> FileName = NULL;
> else {
> - Reply(501, "Missing filename extension in \"%s\"", FileName);
> - return;
> + Jpeg = true;
This would allow overwriting files with extensions other
than ".jpeg", ".jpg" or ".pnm" - is this really what you want?
> }
> // image quality (and obsolete type):
> if ((p = strtok_r(NULL, delim, &strtok_next)) != NULL) {
> @@ -729,10 +728,13 @@
> char RealFileName[PATH_MAX];
> if (FileName) {
> if (grabImageDir) {
> - char *s;
> - asprintf(&s, "%s/%s", grabImageDir, FileName);
> - FileName = s;
> - char *slash = strrchr(FileName, '/'); // there definitely is one
> + char *s = 0;
> + char *slash = strrchr(FileName, '/');
> + if (!slash) {
> + asprintf(&s, "%s/%s", grabImageDir, FileName);
> + FileName = s;
> + }
> + slash = strrchr(FileName, '/'); // there definitely is one
> *slash = 0;
> char *r = realpath(FileName, RealFileName);
> *slash = '/';
Ok, that sounds reasonable.
Klaus
More information about the vdr
mailing list