Skip to Content.
Sympa Menu

freetds - RE: [freetds] stored proc parameters

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Lowden, James K" <LowdenJK AT bernstein.com>
  • To: "FreeTDS Development Group" <freetds AT lists.ibiblio.org>
  • Subject: RE: [freetds] stored proc parameters
  • Date: Fri, 3 Dec 2004 11:44:20 -0500

> From: Paparo, Joshua
> Sent: Friday, December 03, 2004 8:32 AM
>
> I forgot to mention I was indeed setting 'datalen' to zero for null
> params but the bit I'm thinking of in the docs is:
>
> "A pointer to the RPC parameter itself. If datalen is 0, this pointer
> will be ignored and treated as NULL."
>
> This made me think I could just pass a null pointer for 'value' as
long
> as 'datalen' was zero.

You are correct. You can pass a data pointer as NULL (or anything
else), provided you pass datalen as 0.

The RPC code should not, IMHO, assume datalen==0 just because the data
pointer is NULL. A NULL data pointer with a non-zero datalen should be
considered an error.

My reasoning: It's very possible for the application to attempt to pass
a buffer and mistakenly pass NULL instead, even when it "knows" the
right length. This could happen if malloc/realloc fail (and fail to be
checked), for instance. If dblib were to assume the NULL were valid, it
would silently transmit the application's failed logic as bad data to
the database.

--jkl

-----------------------------------------
The information contained in this transmission may contain privileged and
confidential information and is intended only for the use of the person(s)
named above. If you are not the intended recipient, or an employee or agent
responsible for delivering this message to the intended recipient, any
review, dissemination, distribution or duplication of this communication is
strictly prohibited. If you are not the intended recipient, please contact
the sender immediately by reply e-mail and destroy all copies of the original
message. Please note that we do not accept account orders and/or instructions
by e-mail, and therefore will not be responsible for carrying out such orders
and/or instructions.
If you, as the intended recipient of this message, the purpose of which is to
inform and update our clients, prospects and consultants of developments
relating to our services and products, would not like to receive further
e-mail correspondence from the sender, please "reply" to the sender
indicating your wishes. In the U.S.: 1345 Avenue of the Americas, New York,
NY 10105.






Archive powered by MHonArc 2.6.24.

Top of Page