2 This patch fixes the seg faults that occur in the Director if an incorrect
3 estimate command is given -- in particular a level specification without
4 the value. This fixes bug #1140
5 Apply this patch to Bacula 2.4.2 (and possibly earlier versions) with:
8 patch -p0 <2.4.2-estimate-cmd.patch
9 ./configure <your-options>
16 Index: src/dird/ua_cmds.c
17 ===================================================================
18 --- src/dird/ua_cmds.c (revision 7469)
19 +++ src/dird/ua_cmds.c (working copy)
20 @@ -1079,17 +1079,31 @@
21 strcasecmp(ua->argk[i], NT_("fd")) == 0) {
23 client = GetClientResWithName(ua->argv[i]);
25 + ua->error_msg(_("Client \"%s\" not found.\n"), ua->argv[i]);
30 + ua->error_msg(_("Client name missing.\n"));
34 if (strcasecmp(ua->argk[i], NT_("job")) == 0) {
36 job = GetJobResWithName(ua->argv[i]);
37 - if (job && !acl_access_ok(ua, Job_ACL, job->name())) {
39 + ua->error_msg(_("Job \"%s\" not found.\n"), ua->argv[i]);
42 + if (!acl_access_ok(ua, Job_ACL, job->name())) {
43 ua->error_msg(_("No authorization for Job \"%s\"\n"), job->name());
48 + ua->error_msg(_("Job name missing.\n"));
52 if (strcasecmp(ua->argk[i], NT_("fileset")) == 0) {
53 @@ -1100,15 +1114,25 @@
58 + ua->error_msg(_("Fileset name missing.\n"));
63 if (strcasecmp(ua->argk[i], NT_("listing")) == 0) {
67 if (strcasecmp(ua->argk[i], NT_("level")) == 0) {
68 - if (!get_level_from_name(ua->jcr, ua->argv[i])) {
69 - ua->error_msg(_("Level %s not valid.\n"), ua->argv[i]);
71 + if (!get_level_from_name(ua->jcr, ua->argv[i])) {
72 + ua->error_msg(_("Level \"%s\" not valid.\n"), ua->argv[i]);
76 + ua->error_msg(_("Level value missing.\n"));