ref: fae5aebbaf7a6061b4a0d3f90df86153383ce44d
parent: 0591d4ae19bb6ad8349f2d3bfda81a99bd04d956
author: Jacob Moody <moody@posixcafe.org>
date: Mon Nov 24 01:02:27 EST 2025
fix memory corruption for specific values and use Biobufhdr instead
--- a/xml.c
+++ b/xml.c
@@ -58,6 +58,8 @@
}
memmove(o, s, rsz);
+ if(*s == 0)
+ break;
s += rsz;
o += rsz;
}
@@ -238,7 +240,7 @@
}
Xelem *
-xmlread(Biobuf *b, int flags)
+xmlread(Biobufhdr *b, int flags)
{return xmlread_(b, nil, flags & Xmlstartonly);
}
--- a/xml.h
+++ b/xml.h
@@ -23,7 +23,7 @@
Xmlstartonly = 1,
};
-Xelem *xmlread(Biobuf *b, int flags);
+Xelem *xmlread(Biobufhdr *b, int flags);
void xmlfree(Xelem *x);
Xelem *xmlget(Xelem *x, char *path, ...);
Xattr *xmlgetattr(Xattr *a, char *n);
--
⑨