memory leaks in dblib/tds

Geoff Winkless geoff at
Tue Nov 9 09:52:30 EST 1999

Firstly, thanks everyone who's put any work into freetds, it's really
helped me out...

now my problem.

I started out with a large authentication routine which works flawlessly, 
however I noticed that after a day running the program memory use had grown 
to around 8MB.

I broke down the program...

If I create a simple routine which does:

  dbcmd(dbproc, "select top 1 fID from <<SOMETHING>>");
  return_code = dbresults(dbproc);
  if (return_code == NO_MORE_RESULTS) {
    sprintf(mystr, "NORESULT\n");
    return -1;

  while (return_code != NO_MORE_RESULTS) {
    if (return_code == SUCCEED) {
      while (dbnextrow(dbproc)  != NO_MORE_ROWS);
    return_code = dbresults(dbproc);
  return 0;

and continuously call that function within a while(1==1) loop, calling with 
a dbproc that I set up outside the function, I get a large memory leak 
problem -- the program starts at 840k and increases by 16kB every 1000 

If I increase the number of columns I return the leak increases in speed as 
you would expect.

Should I be "free"ing some objects in between calls to dbsqlexec()? Or is 
there a bug somewhere?

I started out with 0.46 but have just tried the above code snippet on a 
different machine which I put .47 on and achieved the same results.

Thanks for any help/suggestions


More information about the FreeTDS mailing list