aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2015-02-19 20:30:05 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2015-02-19 20:30:05 +0000
commite862d9c0c245645665ee19cf623d2bd323238a5f (patch)
treecc3d36db2148dc8eaed15b5dab8118f4b2a651ea
parent8bd00cee8c4335f9598ef6e97a06736c925862a7 (diff)
downloadgnunet-e862d9c0c245645665ee19cf623d2bd323238a5f.tar.gz
gnunet-e862d9c0c245645665ee19cf623d2bd323238a5f.zip
fix crash: check if problem is already created before updating
-rw-r--r--src/ats/plugin_ats_mlp.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/ats/plugin_ats_mlp.c b/src/ats/plugin_ats_mlp.c
index 7d402044f..698b3ef58 100644
--- a/src/ats/plugin_ats_mlp.c
+++ b/src/ats/plugin_ats_mlp.c
@@ -785,7 +785,6 @@ mlp_create_problem_update_value (struct MLP_Problem *p,
785 double *val_array; 785 double *val_array;
786 int *ind_array; 786 int *ind_array;
787 787
788 GNUNET_assert (NULL != p);
789 GNUNET_assert (NULL != p->prob); 788 GNUNET_assert (NULL != p->prob);
790 789
791 /* Get number of columns and prepare data structure */ 790 /* Get number of columns and prepare data structure */
@@ -1589,8 +1588,8 @@ GAS_mlp_solve_problem (void *solver)
1589 { 1588 {
1590 LOG(GNUNET_ERROR_TYPE_DEBUG, "Problem size changed, rebuilding\n"); 1589 LOG(GNUNET_ERROR_TYPE_DEBUG, "Problem size changed, rebuilding\n");
1591 notify(mlp, GAS_OP_SOLVE_SETUP_START, GAS_STAT_SUCCESS, GAS_INFO_FULL); 1590 notify(mlp, GAS_OP_SOLVE_SETUP_START, GAS_STAT_SUCCESS, GAS_INFO_FULL);
1592 mlp_delete_problem(mlp); 1591 mlp_delete_problem (mlp);
1593 if (GNUNET_SYSERR == mlp_create_problem(mlp)) 1592 if (GNUNET_SYSERR == mlp_create_problem (mlp))
1594 { 1593 {
1595 notify(mlp, GAS_OP_SOLVE_SETUP_STOP, GAS_STAT_FAIL, GAS_INFO_FULL); 1594 notify(mlp, GAS_OP_SOLVE_SETUP_STOP, GAS_STAT_FAIL, GAS_INFO_FULL);
1596 return GNUNET_SYSERR; 1595 return GNUNET_SYSERR;
@@ -1905,6 +1904,9 @@ GAS_mlp_address_property_changed (void *solver,
1905 struct MLP_information *mlpi = address->solver_information; 1904 struct MLP_information *mlpi = address->solver_information;
1906 struct GAS_MLP_Handle *mlp = solver; 1905 struct GAS_MLP_Handle *mlp = solver;
1907 1906
1907 if (NULL == mlp->p.prob)
1908 return; /* There is no MLP problem to update yet */
1909
1908 if (NULL == mlpi) 1910 if (NULL == mlpi)
1909 { 1911 {
1910 LOG (GNUNET_ERROR_TYPE_INFO, 1912 LOG (GNUNET_ERROR_TYPE_INFO,