keep_err = ctx->error; ctx->error = NULL;
if (keep_err) { ctx->error = keep_err; keep_err = NULL; }
}
+
+ for (n = 0; n < nnames; n++)
+ free(names[n]);
+ free(names);
}
int glite_jpps_get_attrs(glite_jp_context_t ctx,const char *job,char **attr,int nattr,glite_jp_attrval_t **attrs_out)
free(meta); meta = NULL;
- for (i = 0; i < nout; i++)
- printf("%s\n", out[i].value);
-
if (nout) {
*attrs_out = out;
err = 0;
else meta[1] = NULL;
ret = glite_jppsbe_query(ctx,f->meta_qry,meta,f,feed_query_callback);
+ free(meta);
if (ret == 0) ret = drain_feed(ctx,f,1);
else if (ret == ENOENT) ret = 0;
else drop_jobs(f);
char **feed_id,
time_t *expires)
{
- struct jpfeed *f;
+ struct jpfeed *f = NULL;
if (!*feed_id) *feed_id = generate_feedid();
time(expires); *expires += FEED_TTL;
if (handle->fd_gz == NULL){
gzerror(((fhandle)handle)->fd_gz, &(err.code));
err.desc = "Cannot open requested file";
- free(handle);
+ free(handle); handle = NULL;
error = 1;
goto error_out;
}
}
error_out:
- free(handle);
+ free(((fhandle)handle)->filedata);
+ free(handle); handle=NULL;
if (err.code) {
return glite_jp_stack_error(ctx,&err);
} else {
error_out:
free(stmt);
+ free(e);
if (err.code)
return glite_jp_stack_error(ctx,&err);
else
glite_jp_stack_error(ctx,&err);
goto cleanup;
}
+ free(stmt);
while ((rows = glite_jp_db_FetchRow(ctx,q,sizeof(res)/sizeof(res[0]),NULL, res)) > 0) {
struct jpfeed *f = calloc(1,sizeof *f);
return err.code;
}
+ int i;
+ for (i=0; i < h->n; i++){
+ free(h->tags[i].name);
+ free(h->tags[i].value);
+ }
+ free(h->tags);
+
if (glite_jppsbe_close_file(ctx,h->bhandle))
{
err.code = EIO;
err.desc = "cannot close tags file";
+ free(h);
return glite_jp_stack_error(ctx,&err);
}
+
+ free(h);
return 0;
}