From f0b908e3ec3cee13fef7aa0ef2b17a96caecd96f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Mon, 5 Sep 2011 13:40:37 +0000 Subject: [PATCH] Fix crash in web services on empty classads. --- org.glite.lb.server/src/ws_typeref.c.T | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/org.glite.lb.server/src/ws_typeref.c.T b/org.glite.lb.server/src/ws_typeref.c.T index 65731e5..aa3a330 100644 --- a/org.glite.lb.server/src/ws_typeref.c.T +++ b/org.glite.lb.server/src/ws_typeref.c.T @@ -250,7 +250,7 @@ int edg_wll_StatusToSoap(struct soap *soap,edg_wll_JobStat const *src,struct lbt } elsif ($ft eq 'string') { gen "\tjs->$usuc = soap_strdup(soap,src->$_);\n"; } elsif ($ft eq 'cclassad') { - gen "\ts = cclassad_unparse(src->$_);\n"; + gen "\ts = src->$_ ? cclassad_unparse(src->$_) : NULL;\n"; gen "\tjs->$usuc = s ? soap_strdup(soap, s) : NULL;\n"; gen "\tfree(s);\n"; } elsif ($f->{null}) { @@ -332,8 +332,10 @@ void edg_wll_SoapToStatus(struct soap *soap,struct lbt__jobStatus const *src,edg gen "\tdest->$_ = src->$usuc;\n"; gen "\tsoap_unlink(soap,src->$usuc);\n"; } elsif ($ft eq 'cclassad') { - gen "\tdest->$_ = cclassad_create(src->$usuc);\n"; - gen "\tsoap_unlink(soap,src->$usuc);\n"; + gen "\tif (src->$usuc) {"; + gen "\t\tdest->$_ = cclassad_create(src->$usuc);\n"; + gen "\t\tsoap_unlink(soap,src->$usuc);\n"; + gen "\t}"; } elsif ($f->{null}) { gen "\tdest->$_ = (src->$usuc) ? *(src->$usuc) : $f->{null};\n"; } else { -- 1.8.2.3