Module Name: src Committed By: rillig Date: Mon Mar 4 21:35:28 UTC 2024
Modified Files: src/common/lib/libutil: snprintb.c src/tests/lib/libutil: t_snprintb.c Log Message: snprintb: error out on unknown new-style formatting directive To generate a diff of this commit: cvs rdiff -u -r1.41 -r1.42 src/common/lib/libutil/snprintb.c cvs rdiff -u -r1.29 -r1.30 src/tests/lib/libutil/t_snprintb.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/common/lib/libutil/snprintb.c diff -u src/common/lib/libutil/snprintb.c:1.41 src/common/lib/libutil/snprintb.c:1.42 --- src/common/lib/libutil/snprintb.c:1.41 Sat Feb 24 12:44:11 2024 +++ src/common/lib/libutil/snprintb.c Mon Mar 4 21:35:28 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: snprintb.c,v 1.41 2024/02/24 12:44:11 rillig Exp $ */ +/* $NetBSD: snprintb.c,v 1.42 2024/03/04 21:35:28 rillig Exp $ */ /*- * Copyright (c) 2002, 2024 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ # include <sys/cdefs.h> # if defined(LIBC_SCCS) -__RCSID("$NetBSD: snprintb.c,v 1.41 2024/02/24 12:44:11 rillig Exp $"); +__RCSID("$NetBSD: snprintb.c,v 1.42 2024/03/04 21:35:28 rillig Exp $"); # endif # include <sys/types.h> @@ -45,7 +45,7 @@ __RCSID("$NetBSD: snprintb.c,v 1.41 2024 # include <errno.h> # else /* ! _KERNEL */ # include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: snprintb.c,v 1.41 2024/02/24 12:44:11 rillig Exp $"); +__KERNEL_RCSID(0, "$NetBSD: snprintb.c,v 1.42 2024/03/04 21:35:28 rillig Exp $"); # include <sys/param.h> # include <sys/inttypes.h> # include <sys/systm.h> @@ -215,7 +215,7 @@ new_style(state *s) maybe_wrap_line(s, prev_bitfmt); goto skip_description; default: - s->bitfmt += 2; + return -1; skip_description: while (*s->bitfmt++ != '\0') continue; Index: src/tests/lib/libutil/t_snprintb.c diff -u src/tests/lib/libutil/t_snprintb.c:1.29 src/tests/lib/libutil/t_snprintb.c:1.30 --- src/tests/lib/libutil/t_snprintb.c:1.29 Sat Feb 24 13:00:00 2024 +++ src/tests/lib/libutil/t_snprintb.c Mon Mar 4 21:35:28 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: t_snprintb.c,v 1.29 2024/02/24 13:00:00 rillig Exp $ */ +/* $NetBSD: t_snprintb.c,v 1.30 2024/03/04 21:35:28 rillig Exp $ */ /* * Copyright (c) 2002, 2004, 2008, 2010, 2024 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include <sys/cdefs.h> __COPYRIGHT("@(#) Copyright (c) 2008, 2010, 2024\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_snprintb.c,v 1.29 2024/02/24 13:00:00 rillig Exp $"); +__RCSID("$NetBSD: t_snprintb.c,v 1.30 2024/03/04 21:35:28 rillig Exp $"); #include <stdio.h> #include <string.h> @@ -807,18 +807,24 @@ ATF_TC_BODY(snprintb, tc) 0xff, "0xff<f=0xff=000000000000000000000000000255%>"); - // new style unknown directive - // - // Unknown directives are assumed to have a single byte argument - // followed by a description; they are skipped up to the next '\0'. - h_snprintb( + // new style unknown directive, at the beginning + h_snprintb_len( + 128, + "\177\020" + "unknown\0", + 0xff, + -1, + "0xff#"); + + // new style unknown directive, after a known directive + h_snprintb_len( + 128, "\177\020" - "c\010ignored\0" - "c\000b\0" - "lsb\0" - "b\007msb\0", + "b\007msb\0" + "unknown\0", 0xff, - "0xff<msb>"); + -1, + "0xff<msb#"); // new style combinations, 'b' '=' //