mirror of
https://github.com/samba-team/samba.git
synced 2025-02-05 21:57:51 +03:00
explicitly encode NULL strings in the cache
(This used to be commit 77c1376456765a7afe90afad96fab819fdcf8af3)
This commit is contained in:
parent
cb1195fdef
commit
4ad81e7714
@ -119,6 +119,12 @@ static char *centry_string(struct cache_entry *centry, TALLOC_CTX *mem_ctx)
|
|||||||
char *ret;
|
char *ret;
|
||||||
|
|
||||||
len = centry_uint32(centry);
|
len = centry_uint32(centry);
|
||||||
|
|
||||||
|
if (len == 0xFFFF) {
|
||||||
|
/* a deliberate NULL string */
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (centry->len - centry->ofs < len) {
|
if (centry->len - centry->ofs < len) {
|
||||||
DEBUG(0,("centry corruption? needed %d bytes, have %d\n",
|
DEBUG(0,("centry corruption? needed %d bytes, have %d\n",
|
||||||
len, centry->len - centry->ofs));
|
len, centry->len - centry->ofs));
|
||||||
@ -267,7 +273,15 @@ static void centry_put_uint32(struct cache_entry *centry, uint32 v)
|
|||||||
*/
|
*/
|
||||||
static void centry_put_string(struct cache_entry *centry, const char *s)
|
static void centry_put_string(struct cache_entry *centry, const char *s)
|
||||||
{
|
{
|
||||||
int len = strlen(s);
|
int len;
|
||||||
|
|
||||||
|
if (!s) {
|
||||||
|
/* null strings are marked as len 0xFFFF */
|
||||||
|
centry_put_uint32(centry, 0xFFFF);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
len = strlen(s);
|
||||||
centry_put_uint32(centry, len);
|
centry_put_uint32(centry, len);
|
||||||
centry_expand(centry, len);
|
centry_expand(centry, len);
|
||||||
memcpy(centry->data + centry->ofs, s, len);
|
memcpy(centry->data + centry->ofs, s, len);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user