aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2019-02-21 11:58:05 +0100
committerChristian Grothoff <christian@grothoff.org>2019-02-21 11:58:05 +0100
commitebaa4fac0cfc3ae3a00140474c38b1e0b3b53178 (patch)
tree55d83f9540510c30980673325e8e517091e8c75a
parentd58328bbdf7924f8ea74fbdf23d4972c8b7b4d46 (diff)
downloadgnunet-ebaa4fac0cfc3ae3a00140474c38b1e0b3b53178.tar.gz
gnunet-ebaa4fac0cfc3ae3a00140474c38b1e0b3b53178.zip
fix uninit issue: bad use of hash map
-rw-r--r--src/rps/gnunet-service-rps.c22
-rw-r--r--src/rps/rps-test_util.c53
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;
74struct GNUNET_DISK_FileHandle * 74struct GNUNET_DISK_FileHandle *
75get_file_handle (const char *name) 75get_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