Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/coreutils/src/gnulib/lib/backupfile.c |
Switch to Source code | Preprocessed file |
Line | Source | Count | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | - | |||||||||||||||||||||||||
2 | - | |||||||||||||||||||||||||
3 | - | |||||||||||||||||||||||||
4 | - | |||||||||||||||||||||||||
5 | - | |||||||||||||||||||||||||
6 | - | |||||||||||||||||||||||||
7 | - | |||||||||||||||||||||||||
8 | - | |||||||||||||||||||||||||
9 | char const *simple_backup_suffix = | - | ||||||||||||||||||||||||
10 | ((void *)0) | - | ||||||||||||||||||||||||
11 | ; | - | ||||||||||||||||||||||||
12 | - | |||||||||||||||||||||||||
13 | - | |||||||||||||||||||||||||
14 | - | |||||||||||||||||||||||||
15 | - | |||||||||||||||||||||||||
16 | void | - | ||||||||||||||||||||||||
17 | set_simple_backup_suffix (char const *s) | - | ||||||||||||||||||||||||
18 | { | - | ||||||||||||||||||||||||
19 | if (!s
| 6-2119 | ||||||||||||||||||||||||
20 | s = getenv ("SIMPLE_BACKUP_SUFFIX"); executed 2119 times by 4 tests: s = getenv ("SIMPLE_BACKUP_SUFFIX"); Executed by:
| 2119 | ||||||||||||||||||||||||
21 | simple_backup_suffix = s
| 0-2119 | ||||||||||||||||||||||||
22 | } executed 2125 times by 4 tests: end of block Executed by:
| 2125 | ||||||||||||||||||||||||
23 | - | |||||||||||||||||||||||||
24 | - | |||||||||||||||||||||||||
25 | - | |||||||||||||||||||||||||
26 | - | |||||||||||||||||||||||||
27 | - | |||||||||||||||||||||||||
28 | - | |||||||||||||||||||||||||
29 | static void | - | ||||||||||||||||||||||||
30 | check_extension (char *file, size_t filelen, char e) | - | ||||||||||||||||||||||||
31 | { | - | ||||||||||||||||||||||||
32 | char *base = last_component (file); | - | ||||||||||||||||||||||||
33 | size_t baselen = base_len (base); | - | ||||||||||||||||||||||||
34 | size_t baselen_max = 1 ? 255 : | - | ||||||||||||||||||||||||
35 | 14 dead code: 14 | - | ||||||||||||||||||||||||
36 | ; | - | ||||||||||||||||||||||||
37 | - | |||||||||||||||||||||||||
38 | if (0 || | - | ||||||||||||||||||||||||
39 | 14
| 0-62 | ||||||||||||||||||||||||
40 | < baselen
| 0-62 | ||||||||||||||||||||||||
41 | { | - | ||||||||||||||||||||||||
42 | - | |||||||||||||||||||||||||
43 | long name_max; | - | ||||||||||||||||||||||||
44 | - | |||||||||||||||||||||||||
45 | - | |||||||||||||||||||||||||
46 | - | |||||||||||||||||||||||||
47 | char tmp[sizeof "."]; | - | ||||||||||||||||||||||||
48 | memcpy (tmp, base, sizeof "."); | - | ||||||||||||||||||||||||
49 | strcpy (base, "."); | - | ||||||||||||||||||||||||
50 | - | |||||||||||||||||||||||||
51 | (*__errno_location ()) | - | ||||||||||||||||||||||||
52 | = 0; | - | ||||||||||||||||||||||||
53 | name_max = pathconf (file, | - | ||||||||||||||||||||||||
54 | _PC_NAME_MAX | - | ||||||||||||||||||||||||
55 | ); | - | ||||||||||||||||||||||||
56 | if (0 <= name_max
| 0 | ||||||||||||||||||||||||
57 | (*
| 0 | ||||||||||||||||||||||||
58 | == 0
| 0 | ||||||||||||||||||||||||
59 | { | - | ||||||||||||||||||||||||
60 | long size = baselen_max = name_max; | - | ||||||||||||||||||||||||
61 | if (name_max != size
| 0 | ||||||||||||||||||||||||
62 | baselen_max = never executed: baselen_max = (18446744073709551615UL) ; | 0 | ||||||||||||||||||||||||
63 | (18446744073709551615UL) never executed: baselen_max = (18446744073709551615UL) ; | 0 | ||||||||||||||||||||||||
64 | ; never executed: baselen_max = (18446744073709551615UL) ; | 0 | ||||||||||||||||||||||||
65 | } never executed: end of block | 0 | ||||||||||||||||||||||||
66 | memcpy (base, tmp, sizeof "."); | - | ||||||||||||||||||||||||
67 | } never executed: end of block | 0 | ||||||||||||||||||||||||
68 | - | |||||||||||||||||||||||||
69 | if (0 && baselen_max <= 12 dead code: )baselen_max <= 12 | - | ||||||||||||||||||||||||
70 | { dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
71 | - | |||||||||||||||||||||||||
72 | char *dot = dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
73 | (__extension__ (__builtin_constant_p ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
74 | '.' dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
75 | ) && !__builtin_constant_p ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
76 | base dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
77 | ) && ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
78 | '.' dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
79 | ) == '\0' ? (char *) __rawmemchr ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
80 | base dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
81 | , dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
82 | '.' dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
83 | ) : __builtin_strchr ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
84 | base dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
85 | , dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
86 | '.' dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
87 | ))) dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
88 | ; dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
89 | if (!dot) dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
90 | baselen_max = 8; dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
91 | else dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
92 | { dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
93 | char const *second_dot = dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
94 | (__extension__ (__builtin_constant_p ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
95 | '.' dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
96 | ) && !__builtin_constant_p ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
97 | dot + 1 dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
98 | ) && ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
99 | '.' dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
100 | ) == '\0' ? (char *) __rawmemchr ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
101 | dot + 1 dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
102 | , dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
103 | '.' dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
104 | ) : __builtin_strchr ( dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
105 | dot + 1 dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
106 | , dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
107 | '.' dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
108 | ))) dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
109 | ; dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
110 | baselen_max = (second_dot dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
111 | ? second_dot - base dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
112 | : dot + 1 - base + 3); dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
113 | } dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
114 | } dead code: { char *dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( base ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( base , '.' ) : __builtin_strchr ( base , '.' ))) ; if (!dot) baselen_max = 8; else { char const *second_dot = (__extension__ (__builtin_constant_p ( '.' ) && !__builtin_constant_p ( dot + 1 ) && ( '.' ) == '\0' ? (char *) __rawmemchr ( dot + 1 , '.' ) : __builtin_strchr ( dot + 1 , '.' ))) ; baselen_max = (second_dot ? second_dot - base : dot + 1 - base + 3); } } | - | ||||||||||||||||||||||||
115 | - | |||||||||||||||||||||||||
116 | if (baselen_max < baselen
| 0-62 | ||||||||||||||||||||||||
117 | { | - | ||||||||||||||||||||||||
118 | baselen = file + filelen - base; | - | ||||||||||||||||||||||||
119 | if (baselen_max <= baselen
| 0 | ||||||||||||||||||||||||
120 | baselen = baselen_max - 1; never executed: baselen = baselen_max - 1; | 0 | ||||||||||||||||||||||||
121 | base[baselen] = e; | - | ||||||||||||||||||||||||
122 | base[baselen + 1] = '\0'; | - | ||||||||||||||||||||||||
123 | } never executed: end of block | 0 | ||||||||||||||||||||||||
124 | } executed 62 times by 2 tests: end of block Executed by:
| 62 | ||||||||||||||||||||||||
125 | - | |||||||||||||||||||||||||
126 | - | |||||||||||||||||||||||||
127 | - | |||||||||||||||||||||||||
128 | enum numbered_backup_result | - | ||||||||||||||||||||||||
129 | { | - | ||||||||||||||||||||||||
130 | - | |||||||||||||||||||||||||
131 | - | |||||||||||||||||||||||||
132 | BACKUP_IS_SAME_LENGTH, | - | ||||||||||||||||||||||||
133 | - | |||||||||||||||||||||||||
134 | - | |||||||||||||||||||||||||
135 | - | |||||||||||||||||||||||||
136 | BACKUP_IS_LONGER, | - | ||||||||||||||||||||||||
137 | - | |||||||||||||||||||||||||
138 | - | |||||||||||||||||||||||||
139 | - | |||||||||||||||||||||||||
140 | BACKUP_IS_NEW, | - | ||||||||||||||||||||||||
141 | - | |||||||||||||||||||||||||
142 | - | |||||||||||||||||||||||||
143 | BACKUP_NOMEM | - | ||||||||||||||||||||||||
144 | }; | - | ||||||||||||||||||||||||
145 | static enum numbered_backup_result | - | ||||||||||||||||||||||||
146 | numbered_backup (char **buffer, size_t buffer_size, size_t filelen, | - | ||||||||||||||||||||||||
147 | ptrdiff_t base_offset, DIR **dirpp) | - | ||||||||||||||||||||||||
148 | { | - | ||||||||||||||||||||||||
149 | enum numbered_backup_result result = BACKUP_IS_NEW; | - | ||||||||||||||||||||||||
150 | DIR *dirp = *dirpp; | - | ||||||||||||||||||||||||
151 | struct dirent *dp; | - | ||||||||||||||||||||||||
152 | char *buf = *buffer; | - | ||||||||||||||||||||||||
153 | size_t versionlenmax = 1; | - | ||||||||||||||||||||||||
154 | char *base = buf + base_offset; | - | ||||||||||||||||||||||||
155 | size_t baselen = base_len (base); | - | ||||||||||||||||||||||||
156 | - | |||||||||||||||||||||||||
157 | if (dirp
| 0-78 | ||||||||||||||||||||||||
158 | rewinddir (dirp); never executed: rewinddir (dirp); | 0 | ||||||||||||||||||||||||
159 | else | - | ||||||||||||||||||||||||
160 | { | - | ||||||||||||||||||||||||
161 | - | |||||||||||||||||||||||||
162 | - | |||||||||||||||||||||||||
163 | char tmp[sizeof "."]; | - | ||||||||||||||||||||||||
164 | memcpy (tmp, base, sizeof "."); | - | ||||||||||||||||||||||||
165 | strcpy (base, "."); | - | ||||||||||||||||||||||||
166 | dirp = opendir_safer (buf); | - | ||||||||||||||||||||||||
167 | if (!dirp
| 0-78 | ||||||||||||||||||||||||
168 | (*
| 0 | ||||||||||||||||||||||||
169 | ==
| 0 | ||||||||||||||||||||||||
170 | 12
| 0 | ||||||||||||||||||||||||
171 | ) | - | ||||||||||||||||||||||||
172 | result = BACKUP_NOMEM; never executed: result = BACKUP_NOMEM; | 0 | ||||||||||||||||||||||||
173 | memcpy (base, tmp, sizeof "."); | - | ||||||||||||||||||||||||
174 | strcpy (base + baselen, ".~1~"); | - | ||||||||||||||||||||||||
175 | if (!dirp
| 0-78 | ||||||||||||||||||||||||
176 | return never executed: result;return result; never executed: return result; | 0 | ||||||||||||||||||||||||
177 | *dirpp = dirp; | - | ||||||||||||||||||||||||
178 | } executed 78 times by 2 tests: end of block Executed by:
| 78 | ||||||||||||||||||||||||
179 | - | |||||||||||||||||||||||||
180 | while ((
| 78-413 | ||||||||||||||||||||||||
181 | ((void *)0)
| 78-413 | ||||||||||||||||||||||||
182 | ) | - | ||||||||||||||||||||||||
183 | { | - | ||||||||||||||||||||||||
184 | char const *p; | - | ||||||||||||||||||||||||
185 | char *q; | - | ||||||||||||||||||||||||
186 | - | |||||||||||||||||||||||||
187 | _Bool | - | ||||||||||||||||||||||||
188 | all_9s; | - | ||||||||||||||||||||||||
189 | size_t versionlen; | - | ||||||||||||||||||||||||
190 | - | |||||||||||||||||||||||||
191 | if ( | - | ||||||||||||||||||||||||
192 | (
| 50-363 | ||||||||||||||||||||||||
193 | dp
| 50-363 | ||||||||||||||||||||||||
194 | )->d_name))
| 50-363 | ||||||||||||||||||||||||
195 | < baselen + 4
| 50-363 | ||||||||||||||||||||||||
196 | continue; executed 363 times by 2 tests: continue; Executed by:
| 363 | ||||||||||||||||||||||||
197 | - | |||||||||||||||||||||||||
198 | if (memcmp (buf + base_offset, dp->d_name, baselen + 2) != 0
| 16-34 | ||||||||||||||||||||||||
199 | continue; executed 34 times by 2 tests: continue; Executed by:
| 34 | ||||||||||||||||||||||||
200 | - | |||||||||||||||||||||||||
201 | p = dp->d_name + baselen + 2; | - | ||||||||||||||||||||||||
202 | - | |||||||||||||||||||||||||
203 | - | |||||||||||||||||||||||||
204 | - | |||||||||||||||||||||||||
205 | - | |||||||||||||||||||||||||
206 | - | |||||||||||||||||||||||||
207 | if (! ('1' <= *p
| 0-16 | ||||||||||||||||||||||||
208 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
209 | all_9s = (*p == '9'); | - | ||||||||||||||||||||||||
210 | for (versionlen = 1; ((
| 0-16 | ||||||||||||||||||||||||
211 | all_9s &= (p[versionlen] == '9'); never executed: all_9s &= (p[versionlen] == '9'); | 0 | ||||||||||||||||||||||||
212 | - | |||||||||||||||||||||||||
213 | if (! (p[versionlen] == '~'
| 0-16 | ||||||||||||||||||||||||
214 | && (versionlenmax < versionlen
| 0-16 | ||||||||||||||||||||||||
215 | || (versionlenmax == versionlen
| 0-16 | ||||||||||||||||||||||||
216 | && memcmp (buf + filelen + 2, p, versionlen) <= 0
| 0-16 | ||||||||||||||||||||||||
217 | continue; never executed: continue; | 0 | ||||||||||||||||||||||||
218 | - | |||||||||||||||||||||||||
219 | - | |||||||||||||||||||||||||
220 | - | |||||||||||||||||||||||||
221 | - | |||||||||||||||||||||||||
222 | - | |||||||||||||||||||||||||
223 | versionlenmax = all_9s + versionlen; | - | ||||||||||||||||||||||||
224 | result = (all_9s
| 0-16 | ||||||||||||||||||||||||
225 | size_t new_buffer_size = filelen + 2 + versionlenmax + 2; | - | ||||||||||||||||||||||||
226 | if (buffer_size < new_buffer_size
| 0-16 | ||||||||||||||||||||||||
227 | { | - | ||||||||||||||||||||||||
228 | if (! (__builtin_constant_p (new_buffer_size)
| 0 | ||||||||||||||||||||||||
229 | (9223372036854775807L)
| 0 | ||||||||||||||||||||||||
230 | <
| 0 | ||||||||||||||||||||||||
231 | (18446744073709551615UL)
| 0 | ||||||||||||||||||||||||
232 | ?
| 0 | ||||||||||||||||||||||||
233 | (9223372036854775807L)
| 0 | ||||||||||||||||||||||||
234 | :
| 0 | ||||||||||||||||||||||||
235 | (18446744073709551615UL)
| 0 | ||||||||||||||||||||||||
236 | - 1) / (2) < (new_buffer_size)) : ({ __xalloc_count_type __xalloc_count; __builtin_mul_overflow (new_buffer_size, 2, &__xalloc_count); }))
| 0 | ||||||||||||||||||||||||
237 | new_buffer_size *= 2; never executed: new_buffer_size *= 2; | 0 | ||||||||||||||||||||||||
238 | char *new_buf = realloc (buf, new_buffer_size); | - | ||||||||||||||||||||||||
239 | if (!new_buf
| 0 | ||||||||||||||||||||||||
240 | { | - | ||||||||||||||||||||||||
241 | *buffer = buf; | - | ||||||||||||||||||||||||
242 | return never executed: BACKUP_NOMEM;return BACKUP_NOMEM; never executed: return BACKUP_NOMEM; | 0 | ||||||||||||||||||||||||
243 | } | - | ||||||||||||||||||||||||
244 | buf = new_buf; | - | ||||||||||||||||||||||||
245 | buffer_size = new_buffer_size; | - | ||||||||||||||||||||||||
246 | } never executed: end of block | 0 | ||||||||||||||||||||||||
247 | q = buf + filelen; | - | ||||||||||||||||||||||||
248 | *q++ = '.'; | - | ||||||||||||||||||||||||
249 | *q++ = '~'; | - | ||||||||||||||||||||||||
250 | *q = '0'; | - | ||||||||||||||||||||||||
251 | q += all_9s; | - | ||||||||||||||||||||||||
252 | memcpy (q, p, versionlen + 2); | - | ||||||||||||||||||||||||
253 | - | |||||||||||||||||||||||||
254 | - | |||||||||||||||||||||||||
255 | - | |||||||||||||||||||||||||
256 | q += versionlen; | - | ||||||||||||||||||||||||
257 | while (*--
| 0-16 | ||||||||||||||||||||||||
258 | * never executed: q = '0';*q = '0'; never executed: *q = '0'; | 0 | ||||||||||||||||||||||||
259 | ++*q; | - | ||||||||||||||||||||||||
260 | } executed 16 times by 2 tests: end of block Executed by:
| 16 | ||||||||||||||||||||||||
261 | - | |||||||||||||||||||||||||
262 | *buffer = buf; | - | ||||||||||||||||||||||||
263 | return executed 78 times by 2 tests: result;return result; Executed by:
executed 78 times by 2 tests: return result; Executed by:
| 78 | ||||||||||||||||||||||||
264 | } | - | ||||||||||||||||||||||||
265 | - | |||||||||||||||||||||||||
266 | - | |||||||||||||||||||||||||
267 | - | |||||||||||||||||||||||||
268 | - | |||||||||||||||||||||||||
269 | - | |||||||||||||||||||||||||
270 | - | |||||||||||||||||||||||||
271 | char * | - | ||||||||||||||||||||||||
272 | backupfile_internal (char const *file, enum backup_type backup_type, | - | ||||||||||||||||||||||||
273 | _Bool | - | ||||||||||||||||||||||||
274 | rename) | - | ||||||||||||||||||||||||
275 | { | - | ||||||||||||||||||||||||
276 | ptrdiff_t base_offset = last_component (file) - file; | - | ||||||||||||||||||||||||
277 | size_t filelen = base_offset + strlen (file + base_offset); | - | ||||||||||||||||||||||||
278 | - | |||||||||||||||||||||||||
279 | if (! simple_backup_suffix
| 0-103 | ||||||||||||||||||||||||
280 | set_simple_backup_suffix ( never executed: set_simple_backup_suffix ( ((void *)0) ); | 0 | ||||||||||||||||||||||||
281 | ((void *)0) never executed: set_simple_backup_suffix ( ((void *)0) ); | 0 | ||||||||||||||||||||||||
282 | ); never executed: set_simple_backup_suffix ( ((void *)0) ); | 0 | ||||||||||||||||||||||||
283 | - | |||||||||||||||||||||||||
284 | - | |||||||||||||||||||||||||
285 | - | |||||||||||||||||||||||||
286 | size_t simple_backup_suffix_size = strlen (simple_backup_suffix) + 1; | - | ||||||||||||||||||||||||
287 | size_t backup_suffix_size_guess = simple_backup_suffix_size; | - | ||||||||||||||||||||||||
288 | enum { GUESS = sizeof ".~12345~" }; | - | ||||||||||||||||||||||||
289 | if (backup_suffix_size_guess < GUESS
| 0-103 | ||||||||||||||||||||||||
290 | backup_suffix_size_guess = GUESS; executed 103 times by 4 tests: backup_suffix_size_guess = GUESS; Executed by:
| 103 | ||||||||||||||||||||||||
291 | - | |||||||||||||||||||||||||
292 | ssize_t ssize = filelen + backup_suffix_size_guess + 1; | - | ||||||||||||||||||||||||
293 | char *s = malloc (ssize); | - | ||||||||||||||||||||||||
294 | if (!s
| 0-103 | ||||||||||||||||||||||||
295 | return never executed: s;return s; never executed: return s; | 0 | ||||||||||||||||||||||||
296 | - | |||||||||||||||||||||||||
297 | DIR *dirp = | - | ||||||||||||||||||||||||
298 | ((void *)0) | - | ||||||||||||||||||||||||
299 | ; | - | ||||||||||||||||||||||||
300 | while ( | - | ||||||||||||||||||||||||
301 | 1 | - | ||||||||||||||||||||||||
302 | ) | - | ||||||||||||||||||||||||
303 | { | - | ||||||||||||||||||||||||
304 | memcpy (s, file, filelen + 1); | - | ||||||||||||||||||||||||
305 | - | |||||||||||||||||||||||||
306 | if (backup_type == simple_backups
| 25-78 | ||||||||||||||||||||||||
307 | memcpy (s + filelen, simple_backup_suffix, simple_backup_suffix_size); executed 25 times by 4 tests: memcpy (s + filelen, simple_backup_suffix, simple_backup_suffix_size); Executed by:
| 25 | ||||||||||||||||||||||||
308 | else | - | ||||||||||||||||||||||||
309 | switch (numbered_backup (&s, ssize, filelen, base_offset, &dirp)) | - | ||||||||||||||||||||||||
310 | { | - | ||||||||||||||||||||||||
311 | case executed 16 times by 2 tests: BACKUP_IS_SAME_LENGTH:case BACKUP_IS_SAME_LENGTH: Executed by:
executed 16 times by 2 tests: case BACKUP_IS_SAME_LENGTH: Executed by:
| 16 | ||||||||||||||||||||||||
312 | break; executed 16 times by 2 tests: break; Executed by:
| 16 | ||||||||||||||||||||||||
313 | - | |||||||||||||||||||||||||
314 | case executed 62 times by 2 tests: BACKUP_IS_NEW:case BACKUP_IS_NEW: Executed by:
executed 62 times by 2 tests: case BACKUP_IS_NEW: Executed by:
| 62 | ||||||||||||||||||||||||
315 | if (backup_type == numbered_existing_backups
| 21-41 | ||||||||||||||||||||||||
316 | { | - | ||||||||||||||||||||||||
317 | backup_type = simple_backups; | - | ||||||||||||||||||||||||
318 | memcpy (s + filelen, simple_backup_suffix, | - | ||||||||||||||||||||||||
319 | simple_backup_suffix_size); | - | ||||||||||||||||||||||||
320 | } executed 21 times by 2 tests: end of block Executed by:
| 21 | ||||||||||||||||||||||||
321 | check_extension (s, filelen, '~'); | - | ||||||||||||||||||||||||
322 | break; executed 62 times by 2 tests: break; Executed by:
| 62 | ||||||||||||||||||||||||
323 | - | |||||||||||||||||||||||||
324 | case never executed: BACKUP_IS_LONGER:case BACKUP_IS_LONGER: never executed: case BACKUP_IS_LONGER: | 0 | ||||||||||||||||||||||||
325 | check_extension (s, filelen, '~'); | - | ||||||||||||||||||||||||
326 | break; never executed: break; | 0 | ||||||||||||||||||||||||
327 | - | |||||||||||||||||||||||||
328 | case never executed: BACKUP_NOMEM:case BACKUP_NOMEM: never executed: case BACKUP_NOMEM: | 0 | ||||||||||||||||||||||||
329 | free (s); | - | ||||||||||||||||||||||||
330 | - | |||||||||||||||||||||||||
331 | (*__errno_location ()) | - | ||||||||||||||||||||||||
332 | = | - | ||||||||||||||||||||||||
333 | 12 | - | ||||||||||||||||||||||||
334 | ; | - | ||||||||||||||||||||||||
335 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
336 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
337 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
338 | } never executed: end of block | 0 | ||||||||||||||||||||||||
339 | - | |||||||||||||||||||||||||
340 | if (! rename
| 9-94 | ||||||||||||||||||||||||
341 | break; executed 9 times by 2 tests: break; Executed by:
| 9 | ||||||||||||||||||||||||
342 | - | |||||||||||||||||||||||||
343 | int sdir = dirp
| 20-74 | ||||||||||||||||||||||||
344 | if (sdir < 0
| 20-74 | ||||||||||||||||||||||||
345 | { | - | ||||||||||||||||||||||||
346 | sdir = | - | ||||||||||||||||||||||||
347 | -100 | - | ||||||||||||||||||||||||
348 | ; | - | ||||||||||||||||||||||||
349 | base_offset = 0; | - | ||||||||||||||||||||||||
350 | } executed 20 times by 3 tests: end of block Executed by:
| 20 | ||||||||||||||||||||||||
351 | unsigned flags = backup_type == simple_backups
| 41-53 | ||||||||||||||||||||||||
352 | (1 << 0) | - | ||||||||||||||||||||||||
353 | ; | - | ||||||||||||||||||||||||
354 | if (renameat2 (
| 0-94 | ||||||||||||||||||||||||
355 | -100
| 0-94 | ||||||||||||||||||||||||
356 | , file, sdir, s + base_offset, flags) == 0
| 0-94 | ||||||||||||||||||||||||
357 | break; executed 94 times by 3 tests: break; Executed by:
| 94 | ||||||||||||||||||||||||
358 | int e = | - | ||||||||||||||||||||||||
359 | (*__errno_location ()) | - | ||||||||||||||||||||||||
360 | ; | - | ||||||||||||||||||||||||
361 | if (e !=
| 0 | ||||||||||||||||||||||||
362 | 17
| 0 | ||||||||||||||||||||||||
363 | ) | - | ||||||||||||||||||||||||
364 | { | - | ||||||||||||||||||||||||
365 | if (dirp
| 0 | ||||||||||||||||||||||||
366 | closedir (dirp); never executed: closedir (dirp); | 0 | ||||||||||||||||||||||||
367 | free (s); | - | ||||||||||||||||||||||||
368 | - | |||||||||||||||||||||||||
369 | (*__errno_location ()) | - | ||||||||||||||||||||||||
370 | = e; | - | ||||||||||||||||||||||||
371 | return never executed: return ((void *)0) ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
372 | ((void *)0) never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
373 | ; never executed: return ((void *)0) ; | 0 | ||||||||||||||||||||||||
374 | } | - | ||||||||||||||||||||||||
375 | } never executed: end of block | 0 | ||||||||||||||||||||||||
376 | - | |||||||||||||||||||||||||
377 | if (dirp
| 25-78 | ||||||||||||||||||||||||
378 | closedir (dirp); executed 78 times by 2 tests: closedir (dirp); Executed by:
| 78 | ||||||||||||||||||||||||
379 | return executed 103 times by 4 tests: s;return s; Executed by:
executed 103 times by 4 tests: return s; Executed by:
| 103 | ||||||||||||||||||||||||
380 | } | - | ||||||||||||||||||||||||
Switch to Source code | Preprocessed file |