[freetds] stored proc parameters
Lowden, James K
LowdenJK at bernstein.com
Fri Dec 3 11:44:20 EST 2004
> 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
> 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 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.
More information about the FreeTDS