[systemd-devel] udevd-work: ressize 1024 too short
Robert Milasan
rmilasan at suse.com
Tue Mar 25 05:36:17 PDT 2014
Hello, seems that under some conditions in udev_rules_apply_to_event
(@TK_M_PROGRAM) the fact that result is 1024 bytes creates problems if
the output of the running command/app is bigger then 1024 bytes.
For example, having a VG with 1000 PVs, can create this issue. Actually
the issue is created, in our case, by dmsetup, which output will be
bigger then 1024 (due to the 1000 PVs).
Mar 11 14:55:35 example.org udevd-work[2733]: '/sbin/dmsetup deps -j253
-m0'
started
Mar 11 14:55:35 example.org udevd-work[2733]: '/sbin/dmsetup' (stdout)
'104
dependencies : (94, 101) (94, 97) (94, 93) (94, 89) (94, 85) (94,
81) (94,
77) (94, 73) (94, 69) (94, 65) (94, 61) (94, 57) (94, 53) (94, 49) (94,
45)
(94, 41) (94, 37) (94, 33) (94, 445) (94, 441) (94, 437) (94, 433) (94,
429)
(94, 425) (94, 421) (94, 417) (94, 413) (94, 409) (94, 405) (94, 401)
(94, 397)
(94, 393) (94, 389) (94, 385) (94, 381) (94, 377) (94, 373) (94, 369)
(94, 365)
(94, 361) (94, 357) (94, 353) (94, 349) (94, 345) (94, 341) (94, 337)
(94, 333)
(94, 329) (94, 325) (94, 321) (94, 317) (94, 313) (94, 309) (94, 305)
(94, 301)
(94, 297) (94, 293) (94, 289) (94, 285) (94, 281) (94, 277) (94, 273)
(94, 269)
(94, 265) (94, 261) (94, 257) (94, 253) (94, 249) (94, 245) (94, 241)
(94, 237)
(94, 233) (94, 229) (94, 225) (94, 221) (94, 217) (94, 213) (94, 209)
(94, 205)
(94, 201) (94, 197) (94, 193) (94, 189) (94, 185) (94, 181) (94, 177)
(94, 173)
(94, 169) (94, 165) (94, 161) (94, 157) (94, 153) (94, 149) (94, 145)
(94, 141)
(94, 137) (94, 133) (94, 129) (94, 125) (94, 121) (94, 117) (94, 113) ('
Mar 11 14:55:35 example.org udevd-work[2733]: ressize 1024 too short
Is there a reason for which result is limited to 1024? I know is not
usual that result will be bigger then 1024, but there are conditions
in which this issue can be reproduced.
Simple fix would be to increase the size of result to, for example
UTIL_LINE_SIZE:
#define UTIL_LINE_SIZE 16384
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
index 47bde61..56406e5 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -2027,7 +2027,7 @@ int udev_rules_apply_to_event(struct udev_rules
*rules, struct udev_event *event case TK_M_PROGRAM: {
char program[UTIL_PATH_SIZE];
char **envp;
- char result[UTIL_PATH_SIZE];
+ char result[UTIL_LINE_SIZE];
free(event->program_result);
event->program_result = NULL;
--
Robert Milasan
L3 Support Engineer
SUSE Linux (http://www.suse.com)
email: rmilasan at suse.com
GPG fingerprint: B6FE F4A8 0FA3 3040 3402 6FE7 2F64 167C 1909 6D1A
More information about the systemd-devel
mailing list