strncmp issue

Olivier Houchard mlfbsd at ci0.org
Tue Apr 28 12:04:01 UTC 2009


On Tue, Apr 28, 2009 at 05:29:28PM +0530, Channa wrote:
> 2009/4/28 Olivier Houchard <mlfbsd at ci0.org>:
> >> On Tue, 2009-04-28 at 15:22 +0530, Channa wrote:
> >> > Hi,
> >> >
> >> > I am using the freebsd implementation of strncmp for ARM which is an
> >> > assembly implementation.
> >> > I have a small doubt, when i tested the strncmp by passing the third argument:
> >> > 'n' as -1 the return values is ?'0' instead it should '-1'.
> >> > When the third argument ?to strncmp is as below:
> >> >
> >> > ret = strncmp("a","b",-1)
> >> >
> >> > I think the assembly implementation in
> >> > src/lib/libc/arm/string/strncmp.S file needs
> >> > to be modified to take care of the above condition.
> >> >
> >> > In the current implementation
> >> > /* if ((len - 1) < 0) return 0 */
> >> > ? ? ? ? subs ? ?r2, r2, #1
> >> > ? ? ? ? movmi ? r0, #0
> >> > ? ? ? ? RETc(mi)
> >> >
> >> > This should be changed to check as below
> >> >
> >> > /* if ((len ) < 0) return 0 */
> >> > /* Assembly code here */
> >> >
> >> > Could anyone help in solving the above issue.?
> >> >
> >
> > Hi,
> >
> > This shouldn't be an issue, as the second argument of strncmp is unsigned,
> > -1 is not a valid value.
> >
> > Regards,
> >
> > Olivier
> >
> Hi,
> Thanks for the reply.
> True the third argument of strncmp is unsigned but the return value in
> the below call to strncmp
> 
> ret = strncmp("a","b",-1)
> 
> is '0' but it should be -1 i suppose.
> 
> Please let me know if anything is wrong.
> 

True, sorry.
I'll fix this later today, thanks a lot for reporting !

Regards,

Olivier


More information about the freebsd-arm mailing list