Short Summaries
This paper is about detecting latent configuration(LC) errors. Some configuration parameters are neither used nor checked during normal operations, errors in their settings go undetected until their late manifestation(e.g., under circumstances like error handling and fail-over).
1
// Example
2
// Error handling function
3
static void call_techsup(int sig) {
4
if (fork() == 0) {
5
char* args[] = {“0911”, “SOS”};
6
// dial_prog_path may be invalid, and even if you check the file existence and types
7
// maybe you don't have the right permission!
8
int rv = execvp(dial_prog_path, args);
9
if (rv != 0)
10
fprintf(stderr, “I’m sorry (%d)!”, errno);
11
}
12
}
Copied!
The authors proposes PCheck, which is a tool for enabling early detection of configuration errors. It can automatically generate configuration checking code based on the original program(i.e., the intermediate representation of the programs), and invoke them at the system initialization phase. To prevent side effects, PCheck validates the arguments of the call, but does not actually execute the call. (e.g., replace open with access/stat).