On 2011年08月18日 10:03, Wang Sheng-Hui wrote:
> On 2011年08月18日 04:38, Mike Christie wrote:
>> Did you actually hit this or just find it by searching the code?
>
> I found it while I'm reading its source code.
> Do I need to regenerate the patch?
>
>>
>>
>> On 08/15/2011 07:37 PM, Wang Sheng-Hui wrote:
>>> diff --git a/usr/strings.c b/usr/strings.c
>>> index ee6a51c..6432c2c 100644
>>> --- a/usr/strings.c
>>> +++ b/usr/strings.c
>>> @@ -97,11 +97,16 @@ int str_enlarge_data(struct str_buffer *s, int length)
>>>
>>> void str_remove_initial(struct str_buffer *s, int length)
>>> {
>>> - char *remaining = s->buffer + length;
>>> - int amount = s->data_length - length;
>>> -
>>> - if (s && length) {
>>> - memmove(s->buffer, remaining, amount);
>>> + char *remaining;
>>> + int amount;
>>> +
>>> + if (s && length) {
>>> + remaining = s->buffer + length;
>>> + amount = s->data_length - length;
>>> + if (amount < 0)
>>> + amount = 0;
>>
>> The formatting is off. We use 8 space tabs.
>> So all this above needs to be tabbed over properly. Check out
>> str_truncate_buffer below this function for an example or following the
>> tabbing used in the function originally. Also after the "if" line then
>> the next line should be tabbed over and not alinged with the "(".
>>
>>
>>
>>> + if (amount)
>>> + memmove(s->buffer, remaining, amount);
>>> s->data_length = amount;
>>> s->buffer[amount] = '\0';
>>
>> So you can tell here the formatting is really off. The old code uses the
>> old tabbing and so it makes it akward to read.
>>
>>
>> Patch looks ok other than that.
>
patch regenerated to use 8 space tabs. Hope it's in right
intent this time.
---------------------------------------------------------
We should check NULL pointer first before reference its
member, and check the limit on the data buffer in function
str_remove_initial.
Signed-off-by: Wang Sheng-Hui <[email protected]>
---
usr/strings.c | 13 +++++++++----
1 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/usr/strings.c b/usr/strings.c
index ee6a51c..6432c2c 100644
--- a/usr/strings.c
+++ b/usr/strings.c
@@ -97,11 +97,16 @@ int str_enlarge_data(struct str_buffer *s, int length)
void str_remove_initial(struct str_buffer *s, int length)
{
- char *remaining = s->buffer + length;
- int amount = s->data_length - length;
-
- if (s && length) {
- memmove(s->buffer, remaining, amount);
+ char *remaining;
+ int amount;
+
+ if (s && length) {
+ remaining = s->buffer + length;
+ amount = s->data_length - length;
+ if (amount < 0)
+ amount = 0;
+ if (amount)
+ memmove(s->buffer, remaining, amount);
s->data_length = amount;
s->buffer[amount] = '\0';
}
--
1.7.1
--
You received this message because you are subscribed to the Google Groups
"open-iscsi" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/open-iscsi?hl=en.