This file is indexed.

/var/lib/pcp/testsuite/src/write-bf.c is in pcp-testsuite 3.9.10.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
#include <pcp/pmapi.h>
#include <pcp/impl.h>

typedef struct {
	unsigned int	a:16;
	unsigned int	b:7;
	unsigned int	c:3;
	unsigned int	d:3;
	unsigned int	e:3;
	unsigned int	f:4;
	unsigned int	g:12;
} ext_bits_t;

typedef struct {
	unsigned int	a:16;
	unsigned int	b:7;
	unsigned int	c:3;
	unsigned int	d:3;
	unsigned int	e:3;
	unsigned int	f:4;
	unsigned int	g:12;
} bits_t;

bits_t	outbits = { 0xdead, 0x5f, 0x3, 0x5, 0x7, 0xc, 0xafe };

int
main(int argc, char *argv[])
{
    bits_t	inbits;
    ext_bits_t	extbits;
    __uint32_t	*ip;
    int		i;
    int		sts;

    fprintf(stderr, "sizeof(bits_t): %d\n", (int)sizeof(bits_t));

    if (strcmp(basename(argv[0]), "read-bf") == 0) {
	sts = read(0, &extbits, sizeof(ext_bits_t));
	if (sts != sizeof(ext_bits_t)) {
	    fprintf(stderr, "read() returns %d not %d as expected\n", sts, (int)sizeof(ext_bits_t));
	    exit(1);
	}

	fprintf(stderr, "read: ");
	for (i = 0, ip = (__uint32_t *)&extbits; i < sizeof(ext_bits_t); i += sizeof(*ip), ip++)
	    fprintf(stderr, " %08x", *ip);
	fputc('\n', stderr);

	/*
	 * swap bytes, then assign fields
	 */
	for (i = 0, ip = (__uint32_t *)&extbits; i < sizeof(ext_bits_t); i += sizeof(*ip), ip++)
	    *ip = ntohl(*ip);

	inbits.a = extbits.a;
	inbits.b = extbits.b;
	inbits.c = extbits.c;
	inbits.d = extbits.d;
	inbits.e = extbits.e;
	inbits.f = extbits.f;
	inbits.g = extbits.g;

	if (inbits.a != outbits.a)
	    fprintf(stderr, "Error: \"a\" got %x expected %x\n", inbits.a, outbits.a);
	if (inbits.b != outbits.b)
	    fprintf(stderr, "Error: \"b\" got %x expected %x\n", inbits.b, outbits.b);
	if (inbits.c != outbits.c)
	    fprintf(stderr, "Error: \"c\" got %x expected %x\n", inbits.c, outbits.c);
	if (inbits.d != outbits.d)
	    fprintf(stderr, "Error: \"d\" got %x expected %x\n", inbits.d, outbits.d);
	if (inbits.e != outbits.e)
	    fprintf(stderr, "Error: \"e\" got %x expected %x\n", inbits.e, outbits.e);
	if (inbits.f != outbits.f)
	    fprintf(stderr, "Error: \"f\" got %x expected %x\n", inbits.f, outbits.f);
	if (inbits.g != outbits.g)
	    fprintf(stderr, "Error: \"g\" got %x expected %x\n", inbits.g, outbits.g);
    }
    else {
	/*
	 * assign fields, then swap bytes
	 */
	memset((void *)&extbits, 0, sizeof(ext_bits_t));
	extbits.a = outbits.a;
	extbits.b = outbits.b;
	extbits.c = outbits.c;
	extbits.d = outbits.d;
	extbits.e = outbits.e;
	extbits.f = outbits.f;
	extbits.g = outbits.g;

	for (i = 0, ip = (__uint32_t *)&extbits; i < sizeof(ext_bits_t); i += sizeof(*ip), ip++)
	    *ip = htonl(*ip);

	fprintf(stderr, "write: ");
	for (i = 0, ip = (__uint32_t *)&extbits; i < sizeof(ext_bits_t); i += sizeof(*ip), ip++)
	    fprintf(stderr, " %08x", *ip);
	fputc('\n', stderr);

	sts = write(1, &extbits, sizeof(bits_t));
	if (sts != sizeof(bits_t)) {
	    fprintf(stderr, "write() returns %d not %d as expected\n", sts, (int)sizeof(bits_t));
	    exit(1);
	}
    }
    exit(0);
}