diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index e2cad3fef9b943e3a4ed82430bb5bae0830511fe..2e4de8c6c7767f0c60664f48d4d1d4cee6d1fe59 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -17043,6 +17043,7 @@ static int process_dahdi(struct dahdi_chan_conf *confp, const char *cat, struct
 					res = ioctl(ctlfd, DAHDI_SET_DIALPARAMS, &dps);
 					if (res < 0) {
 						ast_log(LOG_ERROR, "Invalid tone duration: %d ms at line %d: %s\n", toneduration, v->lineno, strerror(errno));
+						close(ctlfd);
 						return -1;
 					}
 				}