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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
diff --git a/src/scanbd/config.c b/src/scanbd/config.c
index 7fa9c2d..9399333 100644
--- a/src/scanbd/config.c
+++ b/src/scanbd/config.c
@@ -102,8 +102,8 @@ void cfg_do_parse(const char *config_file_name) {
cfg = NULL;
}
- char wd[PATH_MAX] = {};
- char config_file[PATH_MAX] = {};
+ char wd[PATH_MAX+1] = {};
+ char config_file[PATH_MAX+1] = {};
char* scanbd_conf_dir = NULL;
// get current directory
@@ -148,7 +148,7 @@ void cfg_do_parse(const char *config_file_name) {
char *make_script_path_abs(const char *script) {
- char* script_abs = malloc(PATH_MAX);
+ char* script_abs = malloc(PATH_MAX+1);
assert(script_abs);
strncpy(script_abs, SCANBD_NULL_STRING, PATH_MAX);
diff --git a/src/scanbd/dbus.c b/src/scanbd/dbus.c
index 428980c..33de735 100644
--- a/src/scanbd/dbus.c
+++ b/src/scanbd/dbus.c
@@ -196,8 +196,8 @@ static void hook_device_ex(const char *param, const char *action_name, const cha
e += 1;
}
else {
- char buf[PATH_MAX];
- char* ptr = getcwd(buf, PATH_MAX - 1);
+ char buf[PATH_MAX+1];
+ char* ptr = getcwd(buf, PATH_MAX);
if (!ptr) {
slog(SLOG_ERROR, "can't get pwd");
}
@@ -751,7 +751,7 @@ bool dbus_init(void) {
return false;
}
#else
- char match[PATH_MAX] = {};
+ char match[PATH_MAX+1] = {};
snprintf(match, PATH_MAX, "type='signal',interface='%s'", DBUS_HAL_INTERFACE);
slog(SLOG_ERROR, "dbus match %s", match);
dbus_bus_add_match(conn, match, &dbus_error);
diff --git a/src/scanbd/sane.c b/src/scanbd/sane.c
index b031904..48691c6 100644
--- a/src/scanbd/sane.c
+++ b/src/scanbd/sane.c
@@ -957,8 +957,8 @@ static void* sane_poll(void* arg) {
e += 1;
}
else {
- char buf[PATH_MAX];
- char* ptr = getcwd(buf, PATH_MAX - 1);
+ char buf[PATH_MAX+1];
+ char* ptr = getcwd(buf, PATH_MAX);
if (!ptr) {
slog(SLOG_ERROR, "can't get pwd");
}
diff --git a/src/scanbd/scanbd.c b/src/scanbd/scanbd.c
index feb73ae..3c8902c 100644
--- a/src/scanbd/scanbd.c
+++ b/src/scanbd/scanbd.c
@@ -350,7 +350,7 @@ int main(int argc, char** argv) {
}
// We do this here as debugging is only completely initialized here
- char prog_path[PATH_MAX] = "";
+ char prog_path[PATH_MAX+1] = "";
strncpy(prog_path, argv[0], PATH_MAX);
char *my_name = basename(prog_path);
if ( strncmp(my_name, NAME_MANAGER_MODE, PATH_MAX) == 0 ) {
diff --git a/src/scanbd/scanbuttond_loader.c b/src/scanbd/scanbuttond_loader.c
index 857834a..06b13f6 100644
--- a/src/scanbd/scanbuttond_loader.c
+++ b/src/scanbd/scanbuttond_loader.c
@@ -29,11 +29,11 @@
// this file is basicly the same as loader.c from the scanbuttond-project,
// but modified to meet the needs of scanbd
-static char lib_dir[PATH_MAX] = SCANBD_NULL_STRING;
+static char lib_dir[PATH_MAX+1] = SCANBD_NULL_STRING;
int scanbtnd_init() {
char *backends_dir = NULL;
- char backends_dir_abs[PATH_MAX] = SCANBD_NULL_STRING;
+ char backends_dir_abs[PATH_MAX+1] = SCANBD_NULL_STRING;
backends_dir = cfg_getstr(cfg_getsec(cfg, C_GLOBAL), C_SCANBUTTONS_BACKENDS_DIR);
if ( backends_dir && (backends_dir[0] != '/')) {
@@ -83,7 +83,7 @@ backend_t* scanbtnd_load_backend(const char* filename){
const char* error;
void* dll_handle;
- char dll_path[PATH_MAX];
+ char dll_path[PATH_MAX+1];
strncpy(dll_path, lib_dir, PATH_MAX);
strncat(dll_path, "/", PATH_MAX - strlen(dll_path));
strncat(dll_path, filename, PATH_MAX - strlen(dll_path));
diff --git a/src/scanbd/scanbuttond_wrapper.c b/src/scanbd/scanbuttond_wrapper.c
index 02b7162..6bbb289 100644
--- a/src/scanbd/scanbuttond_wrapper.c
+++ b/src/scanbd/scanbuttond_wrapper.c
@@ -605,8 +605,8 @@ void* scbtn_poll(void* arg) {
e += 1;
}
else {
- char buf[PATH_MAX];
- char* ptr = getcwd(buf, PATH_MAX - 1);
+ char buf[PATH_MAX+1];
+ char* ptr = getcwd(buf, PATH_MAX);
if (!ptr) {
slog(SLOG_ERROR, "can't get pwd");
}
diff --git a/src/scanbd/slog.c b/src/scanbd/slog.c
index 09fe1de..17b04a3 100644
--- a/src/scanbd/slog.c
+++ b/src/scanbd/slog.c
@@ -26,7 +26,7 @@
bool debug = false;
unsigned int debug_level = 0;
-static char lpre[LINE_MAX] = "";
+static char lpre[LINE_MAX+1] = "";
static int isInitialized = 0;
void slog_init(const char *string) {
@@ -37,7 +37,7 @@ void slog_init(const char *string) {
void
slog(unsigned int level, const char *format, ...) {
va_list ap;
- char buffer[LINE_MAX] = "";
+ char buffer[LINE_MAX+1] = "";
if (isInitialized == 0) {
slog_init("");
|