ubik: Zero header before writing to disk
authorSimon Wilkinson <sxw@your-file-system.com>
Tue, 26 Feb 2013 12:21:59 +0000 (12:21 +0000)
committerDerrick Brashear <shadow@your-file-system.com>
Tue, 26 Feb 2013 16:49:01 +0000 (08:49 -0800)
The ubik disk header contains a padding field, which is never
zeroed before being written out to disk. This means that there is
a shorts worth of stack garbage in every ubik label!

Just zero the whole structure with memset before we populate it.

Caught by coverity (#986011)

Change-Id: Ib9f8b45111a83178372409c717c30ccb6a1044f4
Reviewed-on: http://gerrit.openafs.org/9272
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>

src/ubik/phys.c

index b8fbef4..4ce6a22 100644 (file)
@@ -274,6 +274,9 @@ uphys_setlabel(struct ubik_dbase *adbase, afs_int32 afile,
     fd = uphys_open(adbase, afile);
     if (fd < 0)
        return UNOENT;
+
+    memset(&thdr, 0, sizeof(thdr));
+
     thdr.version.epoch = htonl(aversion->epoch);
     thdr.version.counter = htonl(aversion->counter);
     thdr.magic = htonl(UBIK_MAGIC);