diff options
author | Donald Douwsma <ddouwsma@redhat.com> | 2022-10-14 18:58:47 +1100 |
---|---|---|
committer | Carlos Maiolino <cem@kernel.org> | 2022-10-24 10:31:28 +0200 |
commit | aaaa57f32a605e4ebd2e4230fe036afc009ae0a0 (patch) | |
tree | ece5bce4d0ab4dcf6fa16c1e318448f9948f9511 | |
parent | 7b843fdbbe47ed36117fc0e1fb95e4288f3a9c83 (diff) | |
download | xfsdump-dev-aaaa57f32a605e4ebd2e4230fe036afc009ae0a0.tar.gz |
xfsrestore: untangle inventory unpacking logic
stobj_unpack_sessinfo returns bool_t, fix logic in pi_addfile so errors
can be properly reported.
Signed-off-by: Donald Douwsma <ddouwsma@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Carlos Maiolino <cem@kernel.org>
-rw-r--r-- | restore/content.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/restore/content.c b/restore/content.c index b19bb90e..8bb5fa4f 100644 --- a/restore/content.c +++ b/restore/content.c @@ -5450,17 +5450,14 @@ pi_addfile(Media_t *Mediap, * desc. */ sessp = 0; - if (!buflen) { - ok = BOOL_FALSE; - } else { - /* extract the session information from the buffer */ - if (stobj_unpack_sessinfo(bufp, buflen, &sessinfo)<0) { - ok = BOOL_FALSE; - } else { + ok = BOOL_FALSE; + /* extract the session information from the buffer */ + if (buflen && + stobj_unpack_sessinfo(bufp, buflen, &sessinfo)) { stobj_convert_sessinfo(&sessp, &sessinfo); ok = BOOL_TRUE; - } } + if (!ok || !sessp) { mlog(MLOG_DEBUG | MLOG_WARNING | MLOG_MEDIA, _( "on-media session " |