File: getfsstat.c

package info (click to toggle)
valgrind 1%3A3.24.0-3
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 176,332 kB
  • sloc: ansic: 795,029; exp: 26,134; xml: 23,472; asm: 14,393; cpp: 9,397; makefile: 7,464; sh: 6,122; perl: 5,446; python: 1,498; javascript: 981; awk: 166; csh: 1
file content (33 lines) | stat: -rw-r--r-- 746 bytes parent folder | download | duplicates (4)
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
#include <sys/param.h>
#include <sys/ucred.h>
#include <sys/mount.h>
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    struct statfs mbuf[128];
    int fs_count;

    if ((fs_count = getfsstat (NULL, 0, MNT_NOWAIT)) != -1 )
    {
        getfsstat (mbuf, fs_count * sizeof(mbuf[0]), MNT_NOWAIT);

        for ( int i = 0; i < fs_count; ++i)
        {
            printf("mount from name %s\n", mbuf[i].f_mntfromname);
        }
    }
 
    // now some bad uses
    struct statfs* badbuf = malloc(sizeof(struct statfs));
    free(badbuf);
    getfsstat(badbuf, 1, MNT_NOWAIT);
 
    struct statfs betterbuf;
    int i;
    int badflags;
    getfsstat(NULL, i, MNT_NOWAIT);
    getfsstat(&betterbuf, sizeof(struct statfs), badflags);
}