diff --git a/gkrellmpc/mpd.c b/gkrellmpc/mpd.c index 3b469b3..5048a13 100644 --- a/gkrellmpc/mpd.c +++ b/gkrellmpc/mpd.c @@ -37,7 +37,10 @@ gboolean mpc_mpd_connect() { } if ((sockfd = socket(PF_INET, SOCK_STREAM, 0)) == -1) return(FALSE); - if (!(server = gethostbyname(mpc_conf_hostname))) return(FALSE); + if (!(server = gethostbyname(mpc_conf_hostname))) { + close(sockfd); + return(FALSE); + } bzero((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; @@ -46,7 +49,10 @@ gboolean mpc_mpd_connect() { server->h_length); serv_addr.sin_port = htons(mpc_conf_port); - if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) return(FALSE); + if (connect(sockfd, (struct sockaddr*)&serv_addr, sizeof(serv_addr)) < 0) { + close(sockfd); + return(FALSE); + } /* Getup the mpd object */ mpc_mpd = g_io_channel_unix_new(sockfd);