Re: Runtime error

"Allan Dukat" <[email protected]> Thu, 06 Jun 2013 18:20:25 +0200
Newsgroups gmane.mail.vpopmail
Message-ID <[email protected]>
Hello everyone on this list. 

If I comment out the free-lines in in valias_select_names_end in vpalias.c, 
like this: 

void valias_select_names_end()
{
 int i; 

  /* if( NULL != names ) {
    for(i=0;i<num_names;i++){
      free(names[i]);
    }
    free(names);
    names=NULL;
  } */
  max_names=0;
  num_names=0;
  cur_name=0;
} 

qmaildmin runs without any error. 

Why is it needed to free the memory, is it not so that Apache will do a 
proper clean up when the request ends anyway? 

Unfortunately it is so that my C skills is not that good, that I myself can 
rewrite valias_select_names_end. 

However I doubt that the old code is the course to the error, but I can not 
come up with anything better. 

Thanks in advance for any help you are able to provide. 

Best regards,
Allan Dukat 

Allan Dukat writes: 

> Hi list  
> 
> I have a problem with qmailadmin-1.2.16, configured like this:  
> 
> ./configure \
> --enable-vpopmaildir=/home/vpopmail \
> --enable-htmldir=/usr/local/apache2/htdocs \
> --enable-cgibindir=/usr/local/apache2/cgi-bin \
> --enable-imageurl=/images/qmailadmin \
> --enable-imagedir=/usr/local/apache2/htdocs/images/qmailadmin \
> --enable-qmaildir=/var/qmail \
> --enable-ezmlmdir=/usr/local/bin/ezmlm \
> --enable-cgipath=/cgi-bin/qmailadmin \
> --enable-autoresponder-path=/usr/local/bin \
> --enable-vpopuser=vpopmail \
> --enable-vpopgroup=vchkpw \
> --disable-ezmlm-mysql \
> --enable-modify-quota \
> --enable-help  
> 
> When adding the fist Forward I got an empty page as answer, an this in
> Apache errorlog:  
> 
> *** glibc detected *** /usr/local/apache2/cgi-bin/qmailadmin: double free 
> or corruption (top): 0x0000000001f326e0 ***
> ======= Backtrace: =========
> /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f9ed7c8ab96]
> /usr/local/apache2/cgi-bin/qmailadmin[0x421f04]
> /usr/local/apache2/cgi-bin/qmailadmin[0x4219ad]
> /usr/local/apache2/cgi-bin/qmailadmin[0x42202f]
> /usr/local/apache2/cgi-bin/qmailadmin[0x40715d]
> /usr/local/apache2/cgi-bin/qmailadmin[0x4070a3]
> /usr/local/apache2/cgi-bin/qmailadmin[0x4054f5]
> /usr/local/apache2/cgi-bin/qmailadmin[0x4130c3]
> /usr/local/apache2/cgi-bin/qmailadmin[0x402db6]
> /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xed)[0x7f9ed7c2d76d]
> /usr/local/apache2/cgi-bin/qmailadmin[0x402929]  
> 
> During debug I have used
> export CC="gcc -g -Xlinker -Map=../output.map"
> to make a map-file, and I have "translated" the abowe to:  
> 
> /lib/x86_64-linux-gnu/libc.so.6(+0x7eb96)[0x7f9ed7c8ab96]
> /usr/local/apache2/cgi-bin/qmailadmin[valias_select_names_end]
> /usr/local/apache2/cgi-bin/qmailadmin[valias_select_names]
> /usr/local/apache2/cgi-bin/qmailadmin[valias_select_all]
> /usr/local/apache2/cgi-bin/qmailadmin[count_forwards]
> /usr/local/apache2/cgi-bin/qmailadmin[show_forwards]
> /usr/local/apache2/cgi-bin/qmailadmin[adddotqmailnow]
> /usr/local/apache2/cgi-bin/qmailadmin[process_comands]
> /usr/local/apache2/cgi-bin/qmailadmin[main]  
> 
> The Forward is added, and I can add and list Forwards from now on. When 
> all Forward is deleted and I add a new Forward the error is repeated with 
> the same addresses. 
> 
> I Use Ubuntu 12.04.2 LTS, x86_64, fully patched.
> And openssl-1.0.1e, netqmail-1.06, chkuser-2.0.9-release.patch,
> qmail-authentication-081, ucspi-tcp-0.88, daemontools-0.76, pcre-8.32,
> maildrop-2.6.0, vpopmail-5.4.33, ezmlm-idx-7.1.1, dovecot-2.2.1, 
> apr-1.4.6,
> apr-util-1.5.2, httpd-2.4.4, courier-authlib-0.65.0, sqwebmail-5.6.1,
> autorespond-2.0.4, qmailadmin-1.2.16, qmailadmin-help-1.0.8 and
> vqadmin-2.3.7 all configure-make-install.
> Spam Filter is elsewhere.  
> 
> I have tried with qmailadmin-1.2.15 and qmailadmin-1.2.12 instead, but 
> with the same result.  
> 
> The only problem I see is in the output from the make command of
> vpopmail-5.4.33:  
> 
> 
> gcc -I. -Icdb  -I.    -fPIC  -c -o libvpopmail_a-vpopmail.o `test -f 
> 'vpopmail.c' || echo './'`vpopmail.c
> vpopmail.c: In function ‘vadduser’:
> vpopmail.c:741:9: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:741:9: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 5 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:741:9: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:741:9: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 5 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:743:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:743:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:746:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:746:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c: In function ‘format_maildirquota’:
> vpopmail.c:3825:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:3827:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:3829:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:3829:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c: In function ‘qnprintf’:
> vpopmail.c:4054:6: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmail.c:4054:6: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat  
> 
> gcc -I. -Icdb  -I.    -fPIC  -c -o libvpopmail_a-vlimits.o `test -f 
> 'vlimits.c' || echo './'`vlimits.c
> vlimits.c: In function ‘vlimits_write_limits_file’:
> vlimits.c:483:9: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> vlimits.c:484:9: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> vlimits.c:485:9: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> vlimits.c:486:9: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> gcc -I. -Icdb  -I.    -fPIC  -c -o libvpopmail_a-maildirquota.o `test -f 
> 'maildirquota.c' || echo './'`maildirquota.c
> maildirquota.c: In function ‘maildirsize_read’:
> maildirquota.c:403:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int *’, but argument 3 has type ‘storage_t *’ 
> [-Wformat]
> maildirquota.c:403:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int *’, but argument 4 has type ‘storage_t *’ 
> [-Wformat]
> maildirquota.c: In function ‘doaddquota’:
> maildirquota.c:809:2: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> maildirquota.c:809:2: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]  
> 
> gcc -I. -Icdb  -I.    -fPIC  -c -o libvpopmail_a-vlistlib.o `test -f 
> 'vlistlib.c' || echo './'`vlistlib.c
> vlistlib.c: In function ‘ezmlm_decode’:
> vlistlib.c:491:17: warning: format ‘%d’ expects argument of type 
> ‘int’, but argument 3 has type ‘size_t’ [-Wformat]  
> 
> gcc -I. -Icdb  -I.      -c maildirquota.c
> maildirquota.c: In function ‘maildirsize_read’:
> maildirquota.c:403:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int *’, but argument 3 has type ‘storage_t *’ 
> [-Wformat]
> maildirquota.c:403:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int *’, but argument 4 has type ‘storage_t *’ 
> [-Wformat]
> maildirquota.c: In function ‘doaddquota’:
> maildirquota.c:809:2: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> maildirquota.c:809:2: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]  
> 
> gcc -I. -Icdb  -I.      -c vmoddomlimits.c
> vmoddomlimits.c: In function ‘main’:
> vmoddomlimits.c:210:13: warning: format ‘%llu’ expects argument of 
> type ‘long long unsigned int’, but argument 2 has type ‘storage_t’ 
> [-Wformat]
> vmoddomlimits.c:211:13: warning: format ‘%llu’ expects argument of 
> type ‘long long unsigned int’, but argument 2 has type ‘storage_t’ 
> [-Wformat]
> vmoddomlimits.c:212:13: warning: format ‘%llu’ expects argument of 
> type ‘long long unsigned int’, but argument 2 has type ‘storage_t’ 
> [-Wformat]
> vmoddomlimits.c:213:13: warning: format ‘%llu’ expects argument of 
> type ‘long long unsigned int’, but argument 2 has type ‘storage_t’ 
> [-Wformat]  
> 
> gcc -I. -Icdb  -I.      -c vpopmaild.c
> vpopmaild.c: In function ‘get_limits’:
> vpopmaild.c:2284:5: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2284:5: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2286:5: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2286:5: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2288:5: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2288:5: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2290:5: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2290:5: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c: In function ‘get_user_size’:
> vpopmaild.c:2628:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2628:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2630:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2630:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c: In function ‘get_domain_size’:
> vpopmaild.c:2683:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2683:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2685:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2685:7: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2694:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2694:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2696:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]
> vpopmaild.c:2696:3: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]  
> 
> gcc -I. -Icdb  -I.      -c vlistlib.c
> vlistlib.c: In function ‘ezmlm_decode’:
> vlistlib.c:491:17: warning: format ‘%d’ expects argument of type 
> ‘int’, but argument 3 has type ‘size_t’ [-Wformat]  
> 
> gcc -I. -Icdb  -I.      -c vusagec.c
> vusagec.c: In function ‘main’:
> vusagec.c:70:4: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 3 has type ‘storage_t’ 
> [-Wformat]
> vusagec.c:70:4: warning: format ‘%llu’ expects argument of type 
> ‘long long unsigned int’, but argument 4 has type ‘storage_t’ 
> [-Wformat]  
> 
> 
> Is the above warnings normal behavior, or does this indicate that there is 
> something seriously wrong in my environment?  
> 
> In that case I hope that someone have an idea of what it is.  
> 
> If the output of that make is fine, then I do not have any clue on, why I 
> get the runtime error, and I hope somebody have seen it before an knows 
> what to do.  
> 
> Thanks in advance for any help you are able to provide.  
> 
> Best regards,
> Allan Dukat

!DSPAM:51b0b6a434131659014750!