diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2015-02-19 20:30:05 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2015-02-19 20:30:05 +0000 |
commit | e862d9c0c245645665ee19cf623d2bd323238a5f (patch) | |
tree | cc3d36db2148dc8eaed15b5dab8118f4b2a651ea /src/ats | |
parent | 8bd00cee8c4335f9598ef6e97a06736c925862a7 (diff) | |
download | gnunet-e862d9c0c245645665ee19cf623d2bd323238a5f.tar.gz gnunet-e862d9c0c245645665ee19cf623d2bd323238a5f.zip |
fix crash: check if problem is already created before updating
Diffstat (limited to 'src/ats')
-rw-r--r-- | src/ats/plugin_ats_mlp.c | 8 |
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, |