code: plan9front

Download patch

ref: bada52183c0c61226e82784c307c564533d4fa26
parent: 464817ecf1a2d1486d7c265415e404a3c9298ee5
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Tue Nov 1 07:27:51 EDT 2022

hjfs: check and fix print format errors

--- a/sys/src/cmd/hjfs/cons.c
+++ b/sys/src/cmd/hjfs/cons.c
@@ -142,7 +142,7 @@
 			dprint("bad block %ulld of %ulld in %s %s with directory entry index %d in block %ulld: %r\n", i, blocks, ftype, d->name, l->deind, l->blk);
 		putbuf(c);
 		if(chref(fsmain, r, 0) == 0)
-			dprint("block %ulld of %ulld in %s %s with directory entry index %d in block %ulld has a reference count of 0", i, blocks, ftype, d->name, l->deind, l->blk);
+			dprint("block %ulld of %ulld in %s %s with directory entry index %d in block %ulld has a reference count of 0\n", i, blocks, ftype, d->name, l->deind, l->blk);
 	}
 }
 
@@ -357,7 +357,7 @@
 	if(walkpath(ch, argv[1], nil) < 0)
 		goto error;
 	rlock(fsmain);
-	dprint("loc %ulld / %uld, offset %ulld\n", ch->loc->blk, ch->loc->deind, BLOCK * ch->loc->blk + (RBLOCK - BLOCK) + DENTRYSIZ * ch->loc->deind);
+	dprint("loc %ulld / %d, offset %ulld\n", ch->loc->blk, ch->loc->deind, BLOCK * ch->loc->blk + (RBLOCK - BLOCK) + DENTRYSIZ * ch->loc->deind);
 	b = getbuf(fsmain->d, ch->loc->blk, TDENTRY, 0);
 	if(b == nil){
 		runlock(fsmain);
@@ -366,8 +366,8 @@
 	d = &b->de[ch->loc->deind];
 	dprint("name %s\n", d->name);
 	dprint("uid %d, muid %d, gid %d\n", d->uid, d->muid, d->gid);
-	dprint("mode %#o, qid %ulld, type %#x, version %d\n", d->mode, d->path, d->type, d->vers);
-	dprint("size %d\n", d->size);
+	dprint("mode %#o, qid %ulld, type %#x, version %lud\n", d->mode, d->path, d->type, d->vers);
+	dprint("size %llud\n", d->size);
 	dprint("atime %ulld, mtime %ulld\n", d->atime, d->mtime);
 	putbuf(b);
 	runlock(fsmain);
--- a/sys/src/cmd/hjfs/dev.c
+++ b/sys/src/cmd/hjfs/dev.c
@@ -13,7 +13,7 @@
 	Buf *b;
 	Channel *r;
 	uchar buf[BLOCK];
-	
+
 	d = v;
 	for(;;){
 		qlock(&d->workl);
--- a/sys/src/cmd/hjfs/fns.h
+++ b/sys/src/cmd/hjfs/fns.h
@@ -43,7 +43,8 @@
 int	findentry(Fs *, FLoc *, Buf *, char *, FLoc *, int);
 void	modified(Loc *, Dentry *, short);
 int	trunc(Fs *, FLoc *, Buf *, uvlong);
-int	dprint(char *fmt, ...);
+void	dprint(char *fmt, ...);
+#pragma	varargck argpos dprint 1
 int	delete(Fs *, FLoc *, Buf *);
 int	chref(Fs *, uvlong, int);
 int	newentry(Fs *, Loc *, Buf *, char *, FLoc *, int);
--- a/sys/src/cmd/hjfs/fs1.c
+++ b/sys/src/cmd/hjfs/fs1.c
@@ -654,7 +654,7 @@
 		if(rc < 0)
 			goto end;
 		if(rc == 0){
-			dprint("getblk: block %lld has refcount 0\n");
+			dprint("getblk: block %lld has refcount 0\n", *loc);
 			werrstr("phase error -- getblk");
 			rc = -1;
 			goto end;
--- a/sys/src/cmd/hjfs/main.c
+++ b/sys/src/cmd/hjfs/main.c
@@ -62,21 +62,17 @@
 
 Fs *fsmain;
 
-int
+void
 dprint(char *fmt, ...)
 {
-	static char buf[2048];
-	static QLock lk;
+	char buf[128];
 	va_list va;
-	int rc;
 
-	qlock(&lk);
+	snprint(buf, sizeof(buf), "hjfs: %s", fmt);
+
 	va_start(va, fmt);
-	snprint(buf, 2048, "hjfs: %s", fmt);
-	rc = vfprint(2, buf, va);
+	vfprint(2, buf, va);
 	va_end(va);
-	qunlock(&lk);
-	return rc;
 }
 
 static void