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 <shh...@gmail.com>
---
 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 open-iscsi@googlegroups.com.
To unsubscribe from this group, send email to 
open-iscsi+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/open-iscsi?hl=en.

Reply via email to