not have to upgrade all your File daemons when you upgrade. There is
no database upgrade needed from version 2.0.x to 2.2.0.
-================ Warning !!!!!! ==========================
+================== Warning !!!!!! ==========================
As of Version 2.2.10-b4, the Win32 FD should not descend into
any reparse point directory or reparse mount points unless the
specified directory is explicitly mentioned at the top level of
be backed up, much like Unix hardlinked files. If you want
reparse directories backed up, you must explicitly include them
in your FileSet.
+==============================================================
Beta Release Version 2.2.10-b4
24May08
}
fflush(stdout);
- if (!(bpipe = open_bpipe(cmd, 120, "rw"))) {
+ if ((bpipe = open_bpipe(cmd, 120, "rw"))) {
+ /* If we had to use sendmail, add subject */
+ if (!d->mail_cmd) {
+ fprintf(bpipe->wfd, "Subject: %s\r\n\r\n", _("Bacula Message"));
+ }
+ } else {
berrno be;
Jmsg(jcr, M_ERROR, 0, _("open mail pipe %s failed: ERR=%s\n"),
cmd, be.bstrerror());
}
-
- /* If we had to use sendmail, add subject */
- if (!d->mail_cmd) {
- fprintf(bpipe->wfd, "Subject: %s\r\n\r\n", _("Bacula Message"));
- }
-
return bpipe;
}
/*
Bacula® - The Network Backup Solution
- Copyright (C) 2000-2007 Free Software Foundation Europe e.V.
+ Copyright (C) 2000-2008 Free Software Foundation Europe e.V.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
P(mutex);
ap = (struct abufhead *) abqueue.qnext;
- while (ap != (struct abufhead *) &abqueue) {
+ while (ap != (struct abufhead *)&abqueue) {
bad = 0;
- if ((ap == NULL) ||
- (ap->abq.qnext->qprev != (struct b_queue *) ap)) {
- bad = 0x1;
- }
- if (ap->abq.qprev->qnext != (struct b_queue *) ap) {
- bad |= 0x2;
- }
- if (((unsigned char *) ap)[((struct abufhead *) ap)->ablen - 1] !=
- ((((long) ap) & 0xFF) ^ 0xC5)) {
- bad |= 0x4;
+ if (ap != NULL) {
+ if (ap->abq.qnext->qprev != (struct b_queue *)ap) {
+ bad = 0x1;
+ }
+ if (ap->abq.qprev->qnext != (struct b_queue *)ap) {
+ bad |= 0x2;
+ }
+ if (((unsigned char *) ap)[((struct abufhead *)ap)->ablen - 1] !=
+ ((((long) ap) & 0xFF) ^ 0xC5)) {
+ bad |= 0x4;
+ }
+ } else {
+ bad = 0x8;
}
badbuf |= bad;
if (bad) {
if (bad & 0x4) {
fprintf(stderr, _(" discovery of data overrun.\n"));
}
+ if (bad & 0x8) {
+ fprintf(stderr, _(" NULL pointer.\n"));
+ }
+ if (!ap) {
+ goto get_out;
+ }
fprintf(stderr, _(" Buffer address: %p\n"), ap);
if (ap->abfname != NULL) {
}
}
}
- ap = (struct abufhead *) ap->abq.qnext;
+ ap = (struct abufhead *)ap->abq.qnext;
}
+get_out:
V(mutex);
return badbuf ? 0 : 1;
}
BSR *found_bsr = NULL;
/* Do tape/disk seeking only if CAP_POSITIONBLOCKS is on */
- if (!root_bsr || !root_bsr->use_positioning ||
+ if (!root_bsr) {
+ Dmsg0(dbglevel, "NULL root bsr pointer passed to find_next_bsr.\n");
+ return NULL;
+ }
+ if (!root_bsr->use_positioning ||
!root_bsr->reposition || !dev->has_cap(CAP_POSITIONBLOCKS)) {
Dmsg2(dbglevel, "No nxt_bsr use_pos=%d repos=%d\n", root_bsr->use_positioning, root_bsr->reposition);
return NULL;
#undef VERSION
#define VERSION "2.2.10-b4"
-#define BDATE "24 May 2008"
-#define LSMDATE "24May08"
+#define BDATE "25 May 2008"
+#define LSMDATE "25May08"
#define PROG_COPYRIGHT "Copyright (C) %d-2008 Free Software Foundation Europe e.V.\n"
#define BYEAR "2008" /* year for copyright messages in progs */
Technical notes on version 2.2
General:
+25May08
+kes Fix a few more Coverity reported problems.
+Beta Release Version 2.2.10-b4
24May08
kes Enhance a couple of SD debug messages.
kes Tweak unload flag setting and ensure it is set during swap.