Dear all,

  I found a bug and don’t know where to file it. Just send the mail to let you know.

In the apr_dbd_freetds.c +630, function freetds_open:


sql = apr_palloc (pool, sizeof (apr_dbd_t));  // should be  apr_pcalloc, like apr_dbd_pgsql_open.c +1231


if calls dbd_freetds_query after freetds_open,  it will fail.

static int dbd_freetds_query(apr_dbd_t *sql, int *nrows, const char *query)


    if (sql->trans && sql->trans->errnum) {

        return sql->trans->errnum;



Please confirm this issue.




Best Regards

Chunwei Liu