aboutsummaryrefslogtreecommitdiff
path: root/src/testing
diff options
context:
space:
mode:
authorNathan S. Evans <evans@in.tum.de>2010-06-21 14:30:08 +0000
committerNathan S. Evans <evans@in.tum.de>2010-06-21 14:30:08 +0000
commitb50484f5af8f9a33ecea9cef21621cd71d78b25d (patch)
tree268370a34201930c693e44f22211e2884f89c42d /src/testing
parent36ca30325a5c0f28ba135039c4ef25ad2e9de29f (diff)
downloadgnunet-b50484f5af8f9a33ecea9cef21621cd71d78b25d.tar.gz
gnunet-b50484f5af8f9a33ecea9cef21621cd71d78b25d.zip
codesonar fixes
Diffstat (limited to 'src/testing')
-rw-r--r--src/testing/testing.c22
-rw-r--r--src/testing/testing_group.c20
2 files changed, 32 insertions, 10 deletions
diff --git a/src/testing/testing.c b/src/testing/testing.c
index 5b36fc380..58d09806b 100644
--- a/src/testing/testing.c
+++ b/src/testing/testing.c
@@ -65,6 +65,7 @@ static void
65process_hello (void *cls, const struct GNUNET_MessageHeader *message) 65process_hello (void *cls, const struct GNUNET_MessageHeader *message)
66{ 66{
67 struct GNUNET_TESTING_Daemon *daemon = cls; 67 struct GNUNET_TESTING_Daemon *daemon = cls;
68 int msize;
68 if (daemon == NULL) 69 if (daemon == NULL)
69 return; 70 return;
70 71
@@ -75,6 +76,11 @@ process_hello (void *cls, const struct GNUNET_MessageHeader *message)
75 } 76 }
76 77
77 GNUNET_assert (message != NULL); 78 GNUNET_assert (message != NULL);
79 msize = ntohs(message->size);
80 if (msize < 1)
81 {
82 return;
83 }
78 if (daemon->th != NULL) 84 if (daemon->th != NULL)
79 { 85 {
80 GNUNET_TRANSPORT_get_hello_cancel(daemon->th, &process_hello, daemon); 86 GNUNET_TRANSPORT_get_hello_cancel(daemon->th, &process_hello, daemon);
@@ -85,14 +91,18 @@ process_hello (void *cls, const struct GNUNET_MessageHeader *message)
85 "HELLO", GNUNET_i2s (&daemon->id)); 91 "HELLO", GNUNET_i2s (&daemon->id));
86#endif 92#endif
87 93
88 GNUNET_free_non_null(daemon->hello);
89 daemon->hello = GNUNET_malloc(ntohs(message->size));
90 memcpy(daemon->hello, message, ntohs(message->size));
91 94
92 if (daemon->th != NULL) 95
93 { 96 {
94 GNUNET_TRANSPORT_disconnect(daemon->th); 97 GNUNET_free_non_null(daemon->hello);
95 daemon->th = NULL; 98 daemon->hello = GNUNET_malloc(msize);
99 memcpy(daemon->hello, message, msize);
100
101 if (daemon->th != NULL)
102 {
103 GNUNET_TRANSPORT_disconnect(daemon->th);
104 daemon->th = NULL;
105 }
96 } 106 }
97 107
98} 108}
diff --git a/src/testing/testing_group.c b/src/testing/testing_group.c
index b304047ba..de624f25f 100644
--- a/src/testing/testing_group.c
+++ b/src/testing/testing_group.c
@@ -3150,6 +3150,8 @@ GNUNET_TESTING_daemons_churn (struct GNUNET_TESTING_PeerGroup *pg,
3150 struct ChurnContext *churn_ctx; 3150 struct ChurnContext *churn_ctx;
3151 unsigned int running; 3151 unsigned int running;
3152 unsigned int stopped; 3152 unsigned int stopped;
3153 unsigned int total_running;
3154 unsigned int total_stopped;
3153 unsigned int i; 3155 unsigned int i;
3154 unsigned int *running_arr; 3156 unsigned int *running_arr;
3155 unsigned int *stopped_arr; 3157 unsigned int *stopped_arr;
@@ -3194,8 +3196,14 @@ GNUNET_TESTING_daemons_churn (struct GNUNET_TESTING_PeerGroup *pg,
3194 } 3196 }
3195 3197
3196 churn_ctx = GNUNET_malloc(sizeof(struct ChurnContext)); 3198 churn_ctx = GNUNET_malloc(sizeof(struct ChurnContext));
3197 running_arr = GNUNET_malloc(running * sizeof(unsigned int)); 3199
3198 stopped_arr = GNUNET_malloc(stopped * sizeof(unsigned int)); 3200 running_arr = NULL;
3201 if (running > 0)
3202 running_arr = GNUNET_malloc(running * sizeof(unsigned int));
3203
3204 stopped_arr = NULL;
3205 if (stopped > 0)
3206 stopped_arr = GNUNET_malloc(stopped * sizeof(unsigned int));
3199 3207
3200 running_permute = NULL; 3208 running_permute = NULL;
3201 stopped_permute = NULL; 3209 stopped_permute = NULL;
@@ -3205,6 +3213,8 @@ GNUNET_TESTING_daemons_churn (struct GNUNET_TESTING_PeerGroup *pg,
3205 if (stopped > 0) 3213 if (stopped > 0)
3206 stopped_permute = GNUNET_CRYPTO_random_permute(GNUNET_CRYPTO_QUALITY_WEAK, stopped); 3214 stopped_permute = GNUNET_CRYPTO_random_permute(GNUNET_CRYPTO_QUALITY_WEAK, stopped);
3207 3215
3216 total_running = running;
3217 total_stopped = stopped;
3208 running = 0; 3218 running = 0;
3209 stopped = 0; 3219 stopped = 0;
3210 3220
@@ -3217,11 +3227,13 @@ GNUNET_TESTING_daemons_churn (struct GNUNET_TESTING_PeerGroup *pg,
3217 { 3227 {
3218 if (pg->peers[i].daemon->running == GNUNET_YES) 3228 if (pg->peers[i].daemon->running == GNUNET_YES)
3219 { 3229 {
3230 GNUNET_assert((running_arr != NULL) && (total_running > running));
3220 running_arr[running] = i; 3231 running_arr[running] = i;
3221 running++; 3232 running++;
3222 } 3233 }
3223 else 3234 else
3224 { 3235 {
3236 GNUNET_assert((stopped_arr != NULL) && (total_stopped > stopped));
3225 stopped_arr[stopped] = i; 3237 stopped_arr[stopped] = i;
3226 stopped++; 3238 stopped++;
3227 } 3239 }
@@ -3247,8 +3259,8 @@ GNUNET_TESTING_daemons_churn (struct GNUNET_TESTING_PeerGroup *pg,
3247 timeout, &churn_start_callback, churn_ctx); 3259 timeout, &churn_start_callback, churn_ctx);
3248 } 3260 }
3249 3261
3250 GNUNET_free(running_arr); 3262 GNUNET_free_non_null(running_arr);
3251 GNUNET_free(stopped_arr); 3263 GNUNET_free_non_null(stopped_arr);
3252 GNUNET_free_non_null(running_permute); 3264 GNUNET_free_non_null(running_permute);
3253 GNUNET_free_non_null(stopped_permute); 3265 GNUNET_free_non_null(stopped_permute);
3254} 3266}