Re: [PATCH 4/5] cifs: clean up unaligned accesses in cifs_unicode.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 19 Jan 2011 10:08:59 -0600
Shirish Pargaonkar <shirishpargaonkar@xxxxxxxxx> wrote:


> >> @@ -158,19 +162,23 @@ cifs_from_ucs2(char *to, const __le16 *from, int tolen, int fromlen,
> >>         */
> >>        safelen = tolen - (NLS_MAX_CHARSET_SIZE + nullsize);
> >>
> >> -       for (i = 0; i < fromwords && from[i]; i++) {
> >> +       for (i = 0; i < fromwords; i++) {
> >> +               ftmp = get_unaligned_le16(&from[i]);
> >> +               if (ftmp == 0)
> >> +                       break;
> >> +
> >
> > Can the contents of from[i] be 0 so ftmp is 0 but we did
> > not want to break out until fromwords?
> >
> 
> Basically, why_does/what_it_means get_unaligned_le16()
> returning 0 warrants breaking out of the loop!
> 

That means that we hit the NULL terminator in the "from" string (two
adjacent zero bytes). So, we absolutely want to break out there.

-- 
Jeff Layton <jlayton@xxxxxxxxxx>
--
To unsubscribe from this list: send the line "unsubscribe linux-cifs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux