[pgpool-hackers: 3680] Re: SSL memory leak

Bo Peng pengbo at sraoss.co.jp
Mon Jun 29 09:05:47 JST 2020


Hi Ishii-san,

On Sat, 27 Jun 2020 21:29:34 +0900 (JST)
Tatsuo Ishii <ishii at sraoss.co.jp> wrote:

> I have run Coverity against master branch head. There are some memory
> leak errors in src/utils/pool_ssl.c.
> 
> > *** CID 1429988:    (RESOURCE_LEAK)
> > /src/utils/pool_ssl.c: 360 in init_ssl_ctx()
> > 354     
> > 355     		if (cacert || cacert_dir)
> > 356     		{
> > 357     			error = SSL_CTX_load_verify_locations(cp->ssl_ctx,
> > 358     												  cacert,
> > 359     												  cacert_dir);
> >>>>     CID 1429988:    (RESOURCE_LEAK)
> >>>>     Variable "conf_file_copy" going out of scope leaks the storage it points to.
> > 360     			SSL_RETURN_ERROR_IF((error != 1), "SSL verification setup");
> > 361     			SSL_CTX_set_verify(cp->ssl_ctx, SSL_VERIFY_PEER, NULL);
> > 362     		}
> > 363     	}
> 
> This was introduced by this commit:
> --------------------------------------------------
> 	Mon, 18 May 2020 21:12:25 +0900 (21:12 +0900)
> committer	Bo Peng <pengbo at sraoss.co.jp>	
> commit	fc9e9d3733a9c2c14c10bb3af25217f386ee41c7
> 
> Change relative path of SSL files to configuration directory.
> 
> Patch is created by Umar Hayat and Japanese documentation is added by me.
> --------------------------------------------------
> 
> Macro SSL_RETURN_ERROR_IF is actually:
> 
> #define SSL_RETURN_ERROR_IF(cond, msg) \
> 	do { \
> 		if ( (cond) ) { \
> 			perror_ssl( (msg) ); \
> 			return -1; \
> 		} \
> 	} while (0);
> 
> The leaking storage is this:
> 
> 	char *conf_file_copy = pstrdup(get_config_file_name());
> 
> When SSL_RETURN_ERROR_IF is called, conf_file_copy is not freed, which
> is what Coverity is complaining. Quick and dirty fix would be
> something like:
> 
> #define SSL_RETURN_ERROR_IF(cond, msg) \
> 	do { \
> 		if ( (cond) ) { \
> 			perror_ssl( (msg) ); \
> 			pfree(conf_file_copy); \
> 			return -1; \
> 		} \
> 	} while (0);
> 
> Peng, What do you think?

I will look into this one.
 
> Best regards,
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese:http://www.sraoss.co.jp
> _______________________________________________
> pgpool-hackers mailing list
> pgpool-hackers at pgpool.net
> http://www.pgpool.net/mailman/listinfo/pgpool-hackers


-- 
Bo Peng <pengbo at sraoss.co.jp>
SRA OSS, Inc. Japan


More information about the pgpool-hackers mailing list