diff options
author | Christian Grothoff <christian@grothoff.org> | 2019-02-21 11:58:05 +0100 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2019-02-21 11:58:05 +0100 |
commit | ebaa4fac0cfc3ae3a00140474c38b1e0b3b53178 (patch) | |
tree | 55d83f9540510c30980673325e8e517091e8c75a /src/rps | |
parent | d58328bbdf7924f8ea74fbdf23d4972c8b7b4d46 (diff) | |
download | gnunet-ebaa4fac0cfc3ae3a00140474c38b1e0b3b53178.tar.gz gnunet-ebaa4fac0cfc3ae3a00140474c38b1e0b3b53178.zip |
fix uninit issue: bad use of hash map
Diffstat (limited to 'src/rps')
-rw-r--r-- | src/rps/gnunet-service-rps.c | 22 | ||||
-rw-r--r-- | src/rps/rps-test_util.c | 53 |
2 files changed, 40 insertions, 35 deletions
diff --git a/src/rps/gnunet-service-rps.c b/src/rps/gnunet-service-rps.c index e3e25342e..ccf54d1e2 100644 --- a/src/rps/gnunet-service-rps.c +++ b/src/rps/gnunet-service-rps.c | |||
@@ -2948,7 +2948,11 @@ destroy_sub (struct Sub *sub) | |||
2948 | for (uint32_t i = 0; i < 256; i++) | 2948 | for (uint32_t i = 0; i < 256; i++) |
2949 | { | 2949 | { |
2950 | char push_recv_str_tmp[8]; | 2950 | char push_recv_str_tmp[8]; |
2951 | (void) snprintf (push_recv_str_tmp, 8, "%" PRIu32 "\n", sub->push_recv[i]); | 2951 | |
2952 | GNUNET_snprintf (push_recv_str_tmp, | ||
2953 | sizeof (push_recv_str_tmp), | ||
2954 | "%" PRIu32 "\n", | ||
2955 | sub->push_recv[i]); | ||
2952 | (void) strncat (push_recv_str, | 2956 | (void) strncat (push_recv_str, |
2953 | push_recv_str_tmp, | 2957 | push_recv_str_tmp, |
2954 | 1535 - strnlen (push_recv_str, 1536)); | 2958 | 1535 - strnlen (push_recv_str, 1536)); |
@@ -2956,7 +2960,8 @@ destroy_sub (struct Sub *sub) | |||
2956 | (void) strncat (push_recv_str, | 2960 | (void) strncat (push_recv_str, |
2957 | "\n", | 2961 | "\n", |
2958 | 1535 - strnlen (push_recv_str, 1536)); | 2962 | 1535 - strnlen (push_recv_str, 1536)); |
2959 | LOG (GNUNET_ERROR_TYPE_DEBUG, "Writing push stats to disk\n"); | 2963 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
2964 | "Writing push stats to disk\n"); | ||
2960 | to_file_w_len (sub->file_name_push_recv, 1535, push_recv_str); | 2965 | to_file_w_len (sub->file_name_push_recv, 1535, push_recv_str); |
2961 | GNUNET_free (sub->file_name_push_recv); | 2966 | GNUNET_free (sub->file_name_push_recv); |
2962 | sub->file_name_push_recv = NULL; | 2967 | sub->file_name_push_recv = NULL; |
@@ -2965,7 +2970,11 @@ destroy_sub (struct Sub *sub) | |||
2965 | for (uint32_t i = 0; i < 256; i++) | 2970 | for (uint32_t i = 0; i < 256; i++) |
2966 | { | 2971 | { |
2967 | char pull_delays_str_tmp[8]; | 2972 | char pull_delays_str_tmp[8]; |
2968 | (void) snprintf (pull_delays_str_tmp, 8, "%" PRIu32 "\n", sub->pull_delays[i]); | 2973 | |
2974 | GNUNET_snprintf (pull_delays_str_tmp, | ||
2975 | sizeof (pull_delays_str_tmp), | ||
2976 | "%" PRIu32 "\n", | ||
2977 | sub->pull_delays[i]); | ||
2969 | (void) strncat (pull_delays_str, | 2978 | (void) strncat (pull_delays_str, |
2970 | pull_delays_str_tmp, | 2979 | pull_delays_str_tmp, |
2971 | 1535 - strnlen (pull_delays_str, 1536)); | 2980 | 1535 - strnlen (pull_delays_str, 1536)); |
@@ -3028,8 +3037,11 @@ core_connects (void *cls, | |||
3028 | (void) cls; | 3037 | (void) cls; |
3029 | (void) mq; | 3038 | (void) mq; |
3030 | 3039 | ||
3031 | GNUNET_CONTAINER_multipeermap_put (map_single_hop, peer, NULL, | 3040 | GNUNET_assert (GNUNET_YES == |
3032 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY); | 3041 | GNUNET_CONTAINER_multipeermap_put (map_single_hop, |
3042 | peer, | ||
3043 | NULL, | ||
3044 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); | ||
3033 | return NULL; | 3045 | return NULL; |
3034 | } | 3046 | } |
3035 | 3047 | ||
diff --git a/src/rps/rps-test_util.c b/src/rps/rps-test_util.c index 3a482c1e6..85829f247 100644 --- a/src/rps/rps-test_util.c +++ b/src/rps/rps-test_util.c | |||
@@ -74,49 +74,42 @@ static struct GNUNET_CONTAINER_MultiHashMap *open_files; | |||
74 | struct GNUNET_DISK_FileHandle * | 74 | struct GNUNET_DISK_FileHandle * |
75 | get_file_handle (const char *name) | 75 | get_file_handle (const char *name) |
76 | { | 76 | { |
77 | struct GNUNET_HashCode hash = {0}; | 77 | struct GNUNET_HashCode hash; |
78 | struct GNUNET_DISK_FileHandle *fh; | 78 | struct GNUNET_DISK_FileHandle *fh; |
79 | 79 | ||
80 | if (NULL == open_files) | 80 | if (NULL == open_files) |
81 | { | 81 | { |
82 | open_files = GNUNET_CONTAINER_multihashmap_create (16, | 82 | open_files = GNUNET_CONTAINER_multihashmap_create (16, |
83 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY); | 83 | GNUNET_NO); |
84 | LOG (GNUNET_ERROR_TYPE_DEBUG, | 84 | LOG (GNUNET_ERROR_TYPE_DEBUG, |
85 | "Created map of open files.\n"); | 85 | "Created map of open files.\n"); |
86 | } | 86 | } |
87 | GNUNET_CRYPTO_hash (name, | 87 | GNUNET_CRYPTO_hash (name, |
88 | strnlen (name, | 88 | strlen (name), |
89 | 512), | ||
90 | &hash); | 89 | &hash); |
91 | if (GNUNET_NO == GNUNET_CONTAINER_multihashmap_contains (open_files, | 90 | if (NULL != (fh = GNUNET_CONTAINER_multihashmap_get (open_files, |
92 | &hash)) | 91 | &hash))) |
93 | { | ||
94 | fh = GNUNET_DISK_file_open (name, | ||
95 | GNUNET_DISK_OPEN_WRITE | | ||
96 | GNUNET_DISK_OPEN_CREATE | | ||
97 | GNUNET_DISK_OPEN_APPEND, | ||
98 | GNUNET_DISK_PERM_USER_READ | | ||
99 | GNUNET_DISK_PERM_USER_WRITE | | ||
100 | GNUNET_DISK_PERM_GROUP_READ); | ||
101 | if (NULL == fh) | ||
102 | { | ||
103 | LOG (GNUNET_ERROR_TYPE_ERROR, | ||
104 | "Opening file `%s' failed.\n", | ||
105 | name); | ||
106 | GNUNET_assert (0); | ||
107 | } | ||
108 | GNUNET_CONTAINER_multihashmap_put (open_files, | ||
109 | &hash, | ||
110 | fh, | ||
111 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY); | ||
112 | return fh; | 92 | return fh; |
113 | } | 93 | fh = GNUNET_DISK_file_open (name, |
114 | else | 94 | GNUNET_DISK_OPEN_WRITE | |
95 | GNUNET_DISK_OPEN_CREATE | | ||
96 | GNUNET_DISK_OPEN_APPEND, | ||
97 | GNUNET_DISK_PERM_USER_READ | | ||
98 | GNUNET_DISK_PERM_USER_WRITE | | ||
99 | GNUNET_DISK_PERM_GROUP_READ); | ||
100 | if (NULL == fh) | ||
115 | { | 101 | { |
116 | fh = GNUNET_CONTAINER_multihashmap_get (open_files, | 102 | LOG (GNUNET_ERROR_TYPE_ERROR, |
117 | &hash); | 103 | "Opening file `%s' failed.\n", |
118 | return fh; | 104 | name); |
105 | GNUNET_assert (0); | ||
119 | } | 106 | } |
107 | GNUNET_assert (GNUNET_YES == | ||
108 | GNUNET_CONTAINER_multihashmap_put (open_files, | ||
109 | &hash, | ||
110 | fh, | ||
111 | GNUNET_CONTAINER_MULTIHASHMAPOPTION_UNIQUE_ONLY)); | ||
112 | return fh; | ||
120 | } | 113 | } |
121 | 114 | ||
122 | 115 | ||