cyrusimap / cyrus-imapd

Cyrus IMAP is an email, contacts and calendar server
http://cyrusimap.org
Other
530 stars 145 forks source link

CID 122: RESOURCE_LEAK in do_referral #1411

Open brong opened 13 years ago

brong commented 13 years ago

From: Greg Banks Bugzilla-Id: 3548 Version: 2.4.x (next) Owner: Bron Gondwana

brong commented 13 years ago

From: Greg Banks

Found by Coverity. Some error paths in perl/sieve/lib/isieve.c:do_referral leak a newly allocated isieve_t object.

626
Event alloc_arg: Calling allocation function "init_net" on "obj_new". [details] 627 ret = init_net(host, port, &obj_new); At conditional (1): "ret" taking false path 628 if(ret) return STAT_NO; 629
630 / Start up SASL / Event noescape: Variable "obj_new" is not freed or pointed-to in function "init_sasl". [details] 631 ret = init_sasl(obj_new, 128, callbacks); Event leaked_storage: Variable "obj_new" going out of scope leaks the storage it points to. At conditional (2): "ret" taking true path 632 if(ret) return STAT_NO; 633
634 / Authenticate / Event noescape: Variable "obj_new" is not freed or pointed-to in function "read_capability". [details] 635 mechlist = read_capability(obj_new); 636
637 do { 638 mtried = NULL; Event noescape: Variable "obj_new" is not freed or pointed-to in function "auth_sasl". [details] 639 ret = auth_sasl(mechlist, obj_new, &mtried, &ssf, &errstr); 640 if (errstr) { 641 free(errstr); 642 errstr = NULL; 643 } Event noescape: Variable "obj_new" is not freed or pointed-to in function "init_sasl". [details] 644 if(ret) init_sasl(obj_new, 128, callbacks); 645