[saga-rg] Re: Meeting Notes: Messaging API
Andrei Hutanu
ahutanu at cct.lsu.edu
Mon Dec 5 16:39:22 CST 2005
I find the padding a bit strange as well .. we should leave it out ..
Andrei
>> Hello,
>>
>> Just one comment to the read proposal:
>>
>> "where size is passed to the read method, if size is smaller then
>> the real message size, message gets truncated, remainder gets lost
>> (read again not possible). If size is larger, buffer gets patted by 0"
>
>
> Hi Pascal,
> the truncation is obviously necessary to prevent buffer-overflow
> attacks (either accidental or intentional). The padding for
> oversized buffers is new to me as well. I know that this is done
> inside of security-oriented software like LibSSH (always zero-padding
> buffers on short-reads). I assume there is some security reason for
> doing this, but would appreciate any insight from others on the list
> as to whether the return size for the short read (that indicates the
> correct message size) is sufficient.
>
>> Tailing 0s are unnecessary if the read returns the number of bytes
>> that were read. It is a waist of CPU time to do that. The buffer
>> that is unused should remain "as is".
>>
>> Another issue is that this API forces to write/read the message
>> into/from the first offset of the buffer. In languages like java it
>> ain't be possible to shift the pointer like in C, so the offset must
>> be explicitly given.
>
>
> Good point. This may need to be dealt with for the fortran bindings
> as well in order to be correct to the standard. (we can pass array
> (offset) and it will work for an underlying c-implementation, but
> that might be an abuse of the standard).
>
>> Again this is a language binding issue, but it could be put in the
>> API, otherwise the implementations will not have the same
>> signatures. We will then end up with implementations that do not
>> reflect the generic API for most functions.
>>
>>
>> Andrei Hutanu wrote:
>>
>>> I compiled all the notes on the wiki : http://wiki.cct.lsu.edu/
>>> saga/space/SAGA+API/Messages
>>> Andrei
>>> Andre Merzky wrote:
>>>
>>>> Hmm, that is what I initially wanted to say :-) I should
>>>> have marked in/out params more clearly...
>>>>
>>>> A.
>>>>
>>>>
>>>> Quoting [John Shalf] (Nov 22 2005):
>>>>
>>>>> Whoops,
>>>>> then we really need
>>>>> a) size is not known, so we do two step
>>>>> int getMessageSize(handle);
>>>>> <malloc by application>
>>>>> int read(handle,buffer,size)
>>>>>
>>>>> b) size is not known, but we let implementation malloc
>>>>> automatically
>>>>> char *readAutoAllocate(handle);
>>>>>
>>>>> c) size is known, so we just do a one-step read
>>>>> int read(handle,buffer,size);
>>>>>
>>>>
>>>>
>>>>
>>>>
>>
>>
>> --
>>
>> Best regards,
>> Pascal Kleijer
>>
>> ----------------------------------------------------------------
>> HPC Marketing Promotion Division, NEC Corporation
>> 1-10, Nisshin-cho, Fuchu, Tokyo, 183-8501, Japan.
>> Tel: +81-(0)42/333.6389 Fax: +81-(0)42/333.6382
>
>
More information about the saga-rg
mailing list