Commit 39b6efc8067de56d9955d015e4a7472877a3fe89
Committed by
Anthony Liguori
1 parent
4e12cd94
Fix in file qemu-sockets.c
1) Changed usage of malloc,free,strdup to qemu_malloc,qemu_free,qemu_strdup 2) Some coding style fixes (based on CODING_STYLE document) 3) Free struct addrinfo *res after failure of listen Signed-off-by: vibi <vibi_sreenivasan@cms.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Showing
1 changed file
with
32 additions
and
30 deletions
qemu-sockets.c
| ... | ... | @@ -161,21 +161,22 @@ int inet_listen(const char *str, char *ostr, int olen, |
| 161 | 161 | |
| 162 | 162 | /* create socket + bind */ |
| 163 | 163 | for (e = res; e != NULL; e = e->ai_next) { |
| 164 | - getnameinfo((struct sockaddr*)e->ai_addr,e->ai_addrlen, | |
| 165 | - uaddr,INET6_ADDRSTRLEN,uport,32, | |
| 166 | - NI_NUMERICHOST | NI_NUMERICSERV); | |
| 164 | + getnameinfo((struct sockaddr*)e->ai_addr,e->ai_addrlen, | |
| 165 | + uaddr,INET6_ADDRSTRLEN,uport,32, | |
| 166 | + NI_NUMERICHOST | NI_NUMERICSERV); | |
| 167 | 167 | slisten = socket(e->ai_family, e->ai_socktype, e->ai_protocol); |
| 168 | - if (slisten < 0) { | |
| 168 | + if (slisten < 0) { | |
| 169 | 169 | fprintf(stderr,"%s: socket(%s): %s\n", __FUNCTION__, |
| 170 | 170 | inet_strfamily(e->ai_family), strerror(errno)); |
| 171 | - continue; | |
| 172 | - } | |
| 171 | + continue; | |
| 172 | + } | |
| 173 | 173 | |
| 174 | 174 | setsockopt(slisten,SOL_SOCKET,SO_REUSEADDR,(void*)&on,sizeof(on)); |
| 175 | 175 | #ifdef IPV6_V6ONLY |
| 176 | 176 | if (e->ai_family == PF_INET6) { |
| 177 | 177 | /* listen on both ipv4 and ipv6 */ |
| 178 | - setsockopt(slisten,IPPROTO_IPV6,IPV6_V6ONLY,(void*)&off,sizeof(off)); | |
| 178 | + setsockopt(slisten,IPPROTO_IPV6,IPV6_V6ONLY,(void*)&off, | |
| 179 | + sizeof(off)); | |
| 179 | 180 | } |
| 180 | 181 | #endif |
| 181 | 182 | |
| ... | ... | @@ -183,7 +184,7 @@ int inet_listen(const char *str, char *ostr, int olen, |
| 183 | 184 | if (bind(slisten, e->ai_addr, e->ai_addrlen) == 0) { |
| 184 | 185 | if (sockets_debug) |
| 185 | 186 | fprintf(stderr,"%s: bind(%s,%s,%d): OK\n", __FUNCTION__, |
| 186 | - inet_strfamily(e->ai_family), uaddr, inet_getport(e)); | |
| 187 | + inet_strfamily(e->ai_family), uaddr, inet_getport(e)); | |
| 187 | 188 | goto listen; |
| 188 | 189 | } |
| 189 | 190 | try_next = to && (inet_getport(e) <= to + port_offset); |
| ... | ... | @@ -207,6 +208,7 @@ listen: |
| 207 | 208 | if (listen(slisten,1) != 0) { |
| 208 | 209 | perror("listen"); |
| 209 | 210 | closesocket(slisten); |
| 211 | + freeaddrinfo(res); | |
| 210 | 212 | return -1; |
| 211 | 213 | } |
| 212 | 214 | if (ostr) { |
| ... | ... | @@ -278,35 +280,35 @@ int inet_connect(const char *str, int socktype) |
| 278 | 280 | inet_print_addrinfo(__FUNCTION__, res); |
| 279 | 281 | |
| 280 | 282 | for (e = res; e != NULL; e = e->ai_next) { |
| 281 | - if (getnameinfo((struct sockaddr*)e->ai_addr,e->ai_addrlen, | |
| 282 | - uaddr,INET6_ADDRSTRLEN,uport,32, | |
| 283 | - NI_NUMERICHOST | NI_NUMERICSERV) != 0) { | |
| 283 | + if (getnameinfo((struct sockaddr*)e->ai_addr,e->ai_addrlen, | |
| 284 | + uaddr,INET6_ADDRSTRLEN,uport,32, | |
| 285 | + NI_NUMERICHOST | NI_NUMERICSERV) != 0) { | |
| 284 | 286 | fprintf(stderr,"%s: getnameinfo: oops\n", __FUNCTION__); |
| 285 | - continue; | |
| 286 | - } | |
| 287 | + continue; | |
| 288 | + } | |
| 287 | 289 | sock = socket(e->ai_family, e->ai_socktype, e->ai_protocol); |
| 288 | - if (sock < 0) { | |
| 290 | + if (sock < 0) { | |
| 289 | 291 | fprintf(stderr,"%s: socket(%s): %s\n", __FUNCTION__, |
| 290 | - inet_strfamily(e->ai_family), strerror(errno)); | |
| 291 | - continue; | |
| 292 | - } | |
| 292 | + inet_strfamily(e->ai_family), strerror(errno)); | |
| 293 | + continue; | |
| 294 | + } | |
| 293 | 295 | setsockopt(sock,SOL_SOCKET,SO_REUSEADDR,(void*)&on,sizeof(on)); |
| 294 | 296 | |
| 295 | - /* connect to peer */ | |
| 296 | - if (connect(sock,e->ai_addr,e->ai_addrlen) < 0) { | |
| 297 | + /* connect to peer */ | |
| 298 | + if (connect(sock,e->ai_addr,e->ai_addrlen) < 0) { | |
| 297 | 299 | if (sockets_debug || NULL == e->ai_next) |
| 298 | 300 | fprintf(stderr, "%s: connect(%s,%s,%s,%s): %s\n", __FUNCTION__, |
| 299 | 301 | inet_strfamily(e->ai_family), |
| 300 | 302 | e->ai_canonname, uaddr, uport, strerror(errno)); |
| 301 | 303 | closesocket(sock); |
| 302 | - continue; | |
| 303 | - } | |
| 304 | + continue; | |
| 305 | + } | |
| 304 | 306 | if (sockets_debug) |
| 305 | 307 | fprintf(stderr, "%s: connect(%s,%s,%s,%s): OK\n", __FUNCTION__, |
| 306 | 308 | inet_strfamily(e->ai_family), |
| 307 | 309 | e->ai_canonname, uaddr, uport); |
| 308 | 310 | freeaddrinfo(res); |
| 309 | - return sock; | |
| 311 | + return sock; | |
| 310 | 312 | } |
| 311 | 313 | freeaddrinfo(res); |
| 312 | 314 | return -1; |
| ... | ... | @@ -322,17 +324,17 @@ int unix_listen(const char *str, char *ostr, int olen) |
| 322 | 324 | |
| 323 | 325 | sock = socket(PF_UNIX, SOCK_STREAM, 0); |
| 324 | 326 | if (sock < 0) { |
| 325 | - perror("socket(unix)"); | |
| 326 | - return -1; | |
| 327 | + perror("socket(unix)"); | |
| 328 | + return -1; | |
| 327 | 329 | } |
| 328 | 330 | |
| 329 | 331 | opts = strchr(str, ','); |
| 330 | 332 | if (opts) { |
| 331 | 333 | len = opts - str; |
| 332 | - path = malloc(len+1); | |
| 334 | + path = qemu_malloc(len+1); | |
| 333 | 335 | snprintf(path, len+1, "%.*s", len, str); |
| 334 | 336 | } else |
| 335 | - path = strdup(str); | |
| 337 | + path = qemu_strdup(str); | |
| 336 | 338 | |
| 337 | 339 | memset(&un, 0, sizeof(un)); |
| 338 | 340 | un.sun_family = AF_UNIX; |
| ... | ... | @@ -365,11 +367,11 @@ int unix_listen(const char *str, char *ostr, int olen) |
| 365 | 367 | |
| 366 | 368 | if (sockets_debug) |
| 367 | 369 | fprintf(stderr, "bind(unix:%s): OK\n", un.sun_path); |
| 368 | - free(path); | |
| 370 | + qemu_free(path); | |
| 369 | 371 | return sock; |
| 370 | 372 | |
| 371 | 373 | err: |
| 372 | - free(path); | |
| 374 | + qemu_free(path); | |
| 373 | 375 | closesocket(sock); |
| 374 | 376 | return -1; |
| 375 | 377 | } |
| ... | ... | @@ -381,8 +383,8 @@ int unix_connect(const char *path) |
| 381 | 383 | |
| 382 | 384 | sock = socket(PF_UNIX, SOCK_STREAM, 0); |
| 383 | 385 | if (sock < 0) { |
| 384 | - perror("socket(unix)"); | |
| 385 | - return -1; | |
| 386 | + perror("socket(unix)"); | |
| 387 | + return -1; | |
| 386 | 388 | } |
| 387 | 389 | |
| 388 | 390 | memset(&un, 0, sizeof(un)); | ... | ... |