mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
the conversion from int to size_t in charcnv did not take into account
one place where we checked "if (src_len > 0)". I actually would greatly prefer to switch back to int for src_len. The type *can* be negative, which means an unsigned type is inappropriate. There is absolutely no reason why "int" should not be used for a parameter like this. I didn't change back to int as we are close to a release and I wanted a mininal change, but please don't go changing types like this in future without very careful testing and a damn good reason. this bug broke pull_ucs2(), I would not be surprised if it caused all sorts of nastiness. Thanks to vl for noticing the symptoms!
This commit is contained in:
parent
e3a5e2d9c2
commit
8b8f0c5279
@ -921,7 +921,7 @@ size_t pull_ucs2(const void *base_ptr, char *dest, const void *src, size_t dest_
|
||||
|
||||
if (ucs2_align(base_ptr, src, flags)) {
|
||||
src = (const void *)((const char *)src + 1);
|
||||
if (src_len > 0)
|
||||
if (src_len != (size_t)-1)
|
||||
src_len--;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user