Dolda2000 GitWeb
/
doldaconnect.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix a segv bug in findsehash.
[doldaconnect.git]
/
daemon
/
fnet-dc.c
diff --git
a/daemon/fnet-dc.c
b/daemon/fnet-dc.c
index
0179223
..
d45b144
100644
(file)
--- a/
daemon/fnet-dc.c
+++ b/
daemon/fnet-dc.c
@@
-44,7
+44,7
@@
#include "transfer.h"
#include "sysevents.h"
#include "net.h"
#include "transfer.h"
#include "sysevents.h"
#include "net.h"
-#include
"tiger.h"
+#include
<tiger.h>
/*
* The Direct Connect protocol is extremely ugly. Thus, this code must
/*
* The Direct Connect protocol is extremely ugly. Thus, this code must
@@
-2427,8
+2427,10
@@
static struct hash *findsehash(struct sexpr *sexpr)
return(h1);
break;
case SOP_OR:
return(h1);
break;
case SOP_OR:
- h1 = findsehash(sexpr->l);
- h2 = findsehash(sexpr->r);
+ if((h1 = findsehash(sexpr->l)) == NULL)
+ return(NULL);
+ if((h2 = findsehash(sexpr->r)) == NULL)
+ return(NULL);
if(hashcmp(h1, h2))
return(h1);
break;
if(hashcmp(h1, h2))
return(h1);
break;
@@
-3523,6
+3525,8
@@
static void listtimercb(int cancelled, void *uudata)
static void updatelists(int now)
{
static void updatelists(int now)
{
+ if((hmlistname == NULL) || (xmllistname == NULL) || (xmlbz2listname == NULL))
+ now = 1;
if(!now)
{
if(listwritetimer == NULL)
if(!now)
{
if(listwritetimer == NULL)