summaryrefslogtreecommitdiff
path: root/markad-standalone.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'markad-standalone.cpp')
-rw-r--r--markad-standalone.cpp28
1 files changed, 19 insertions, 9 deletions
diff --git a/markad-standalone.cpp b/markad-standalone.cpp
index 18ab1a0..03b123d 100644
--- a/markad-standalone.cpp
+++ b/markad-standalone.cpp
@@ -72,16 +72,14 @@ bool cMarkAdIndex::Open(const char *Directory)
{
if (!Directory) return false;
char *ibuf;
- asprintf(&ibuf,"%s/index.vdr",Directory);
- if (!ibuf) return false;
+ if (asprintf(&ibuf,"%s/index.vdr",Directory)==-1) return false;
index_fd = open(ibuf,O_RDONLY);
free(ibuf);
maxfiles=999;
if (index_fd==-1)
{
// second try just index -> ts format
- asprintf(&ibuf,"%s/index",Directory);
- if (!ibuf) return false;
+ if (asprintf(&ibuf,"%s/index",Directory)==-1) return false;
index_fd = open(ibuf,O_RDONLY);
free(ibuf);
if (index_fd==-1)
@@ -106,6 +104,7 @@ cMarkAdIndex::cMarkAdIndex(const char *Directory)
iframe=0;
offset=0;
index=0;
+ index_fd=-1;
ts=false;
Open(Directory);
}
@@ -135,16 +134,23 @@ bool cMarkAdStandalone::ProcessFile(int Number)
datalen=70688; // multiple of 188
data=(uchar *) malloc(datalen);
if (!data) return false;
- asprintf(&fbuf,"%s/%05i.ts",dir,Number);
+ if (asprintf(&fbuf,"%s/%05i.ts",dir,Number)==-1)
+ {
+ free(data);
+ return false;
+ }
}
else
{
datalen=69632; // VDR paket size
data=(uchar *) malloc(datalen);
- if (!data)return false;
- asprintf(&fbuf,"%s/%03i.vdr",dir,Number);
+ if (!data) return false;
+ if (asprintf(&fbuf,"%s/%03i.vdr",dir,Number)==-1)
+ {
+ free(data);
+ return false;
+ }
}
- if (!fbuf) return false;
int f=open(fbuf,O_RDONLY);
free(fbuf);
@@ -583,7 +589,11 @@ int main(int argc, char *argv[])
if ( bFork )
{
isyslog("markad (forked) pid: %d", getpid());
- chdir("/");
+ if (chdir("/")==-1)
+ {
+ perror("chdir");
+ exit(EXIT_FAILURE);
+ }
if (setsid() == (pid_t)(-1))
{
perror("setsid");