|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v20210701 11/40] tools: use sr_is_known_page_type
Verify pfn type on sending side, also verify incoming batch of pfns.
Signed-off-by: Olaf Hering <olaf@xxxxxxxxx>
Reviewed-by: Juergen Gross <jgross@xxxxxxxx>
v02:
- use sr_is_known_page_type instead of xc_is_known_page_type
---
tools/libs/saverestore/restore.c | 3 +--
tools/libs/saverestore/save.c | 6 ++++++
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/tools/libs/saverestore/restore.c b/tools/libs/saverestore/restore.c
index be259a1c6b..324b9050e2 100644
--- a/tools/libs/saverestore/restore.c
+++ b/tools/libs/saverestore/restore.c
@@ -406,8 +406,7 @@ static int handle_page_data(struct xc_sr_context *ctx,
struct xc_sr_record *rec)
}
type = (pages->pfn[i] & PAGE_DATA_TYPE_MASK) >> 32;
- if ( ((type >> XEN_DOMCTL_PFINFO_LTAB_SHIFT) >= 5) &&
- ((type >> XEN_DOMCTL_PFINFO_LTAB_SHIFT) <= 8) )
+ if ( sr_is_known_page_type(type) == false )
{
ERROR("Invalid type %#"PRIx32" for pfn %#"PRIpfn" (index %u)",
type, pfn, i);
diff --git a/tools/libs/saverestore/save.c b/tools/libs/saverestore/save.c
index ae3e8797d0..6f820ea432 100644
--- a/tools/libs/saverestore/save.c
+++ b/tools/libs/saverestore/save.c
@@ -147,6 +147,12 @@ static int write_batch(struct xc_sr_context *ctx)
for ( i = 0; i < nr_pfns; ++i )
{
+ if ( sr_is_known_page_type(types[i]) == false )
+ {
+ ERROR("Wrong type %#"PRIpfn" for pfn %#"PRIpfn, types[i], mfns[i]);
+ goto err;
+ }
+
switch ( types[i] )
{
case XEN_DOMCTL_PFINFO_BROKEN:
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |