Skip to content

DBI::preparse() always copies ps_accept to ps_return #164

@rwfranks

Description

@rwfranks

Transcribed verbatim from CPAN RT#130194, warts and all.

Fri Jul 26 09:35:25 2019 ppisar [...] redhat.com - Ticket created
Subject: DBI::preparse() always copies ps_accept to ps_return

preparse() contins this code:

if (!(ps_return | DBIpp_ph_XX)) { /* no return ph type specified */
    ps_return |= ps_accept | DBIpp_ph_XX;   /* so copy from ps_accept */
}

The condition looks weird as DBIpp_ph_XX constant is 0x000F00, thus the condition is always true. As a result ps_return always gets the bits copied and 0x000F00 set.

If that were a typo and one used if (!(ps_return & DBIpp_ph_XX)), t/60preparse.t test fails. If I simplify the code to:

    ps_return |= ps_accept;   /* so copy from ps_accept */

The test still passes.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions