Changeset: 305b4f574d81 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=305b4f574d81
Modified Files:
MonetDB/src/gdk/gdk_align.mx
MonetDB/src/gdk/gdk_atoms.mx
common/stream/stream.c
sql/src/server/sql_semantic.c
Branch: default
Log Message:
Merge with Oct2010 branch.
diffs (229 lines):
diff -r a22ff796a793 -r 305b4f574d81 MonetDB/src/gdk/gdk_align.mx
--- a/MonetDB/src/gdk/gdk_align.mx Thu Jan 13 12:54:08 2011 +0100
+++ b/MonetDB/src/gdk/gdk_align.mx Thu Jan 13 14:07:43 2011 +0100
@@ -593,6 +593,7 @@
BATstore *bs;
BUN cnt;
str nme;
+ size_t nmelen;
/* alloc heaps */
memset(&head, 0, sizeof(Heap));
@@ -607,40 +608,41 @@
bs = BBP_desc(n->batCacheid);
cnt = BATcount(n) + 1;
nme = BBP_physical(n->batCacheid);
+ nmelen = nme ? strlen(nme) : 0;
assert(n->batCacheid > 0);
assert(hp || !b->htype);
assert(tp || !b->ttype);
if (n->htype) {
- head.filename = (str) GDKmalloc(strlen(nme) + 12);
+ head.filename = (str) GDKmalloc(nmelen + 12);
if (head.filename == NULL)
goto bailout;
- sprintf(head.filename, "%s.head", nme);
+ snprintf(head.filename, nmelen + 12, "%s.head", nme);
if (n->htype && HEAPalloc(&head, cnt, Hsize(n)) < 0)
goto bailout;
}
if (n->ttype) {
- tail.filename = (str) GDKmalloc(strlen(nme) + 12);
+ tail.filename = (str) GDKmalloc(nmelen + 12);
if (tail.filename == NULL)
goto bailout;
- sprintf(tail.filename, "%s.tail", nme);
+ snprintf(tail.filename, nmelen + 12, "%s.tail", nme);
if (n->ttype && HEAPalloc(&tail, cnt, Tsize(n)) < 0)
goto bailout;
}
if (n->H->vheap) {
- hh.filename = (str) GDKmalloc(strlen(nme) + 12);
+ hh.filename = (str) GDKmalloc(nmelen + 12);
if (hh.filename == NULL)
goto bailout;
- sprintf(hh.filename, "%s.hheap", nme);
+ snprintf(hh.filename, nmelen + 12, "%s.hheap", nme);
if (ATOMheap(n->htype, &hh, cnt) < 0)
goto bailout;
}
if (n->T->vheap) {
- th.filename = (str) GDKmalloc(strlen(nme) + 12);
+ th.filename = (str) GDKmalloc(nmelen + 12);
if (th.filename == NULL)
goto bailout;
- sprintf(th.filename, "%s.theap", nme);
+ snprintf(th.filename, nmelen + 12, "%s.theap", nme);
if (ATOMheap(n->ttype, &th, cnt) < 0)
goto bailout;
}
diff -r a22ff796a793 -r 305b4f574d81 MonetDB/src/gdk/gdk_atoms.mx
--- a/MonetDB/src/gdk/gdk_atoms.mx Thu Jan 13 12:54:08 2011 +0100
+++ b/MonetDB/src/gdk/gdk_atoms.mx Thu Jan 13 14:07:43 2011 +0100
@@ -548,7 +548,7 @@
FATALcheck(GDKatomcnt == MAXATOMS, "ATOMproperty:too many
types");
FATALcheck(strlen(id) >= IDLENGTH, "ATOMproperty:name too
long");
memset(BATatoms + t, 0, sizeof(atomDesc));
- strcpy(BATatoms[t].name, id);
+ strncpy(BATatoms[t].name, id, IDLENGTH);
BATatoms[t].size = sizeof(int); /* default */
assert_shift_width(ATOMelmshift(BATatoms[t].size),
BATatoms[t].size);
BATatoms[t].align = sizeof(int); /* default */
@@ -575,7 +575,7 @@
BATatoms[t].align = val;
} else if (strcmp("storage", property) == 0) {
BATatoms[t] = BATatoms[val]; /* copy from example */
- strcpy(BATatoms[t].name, id); /* restore name */
+ strncpy(BATatoms[t].name, id, IDLENGTH); /* restore name */
} else if (strcmp("fromstr", property) == 0) {
BATatoms[t].atomFromStr = (int (*)(char *, int *, void **)) arg;
} else if (strcmp("tostr", property) == 0) {
@@ -657,7 +657,7 @@
char *
ATOMname(int t)
{
- return (t >= 0 && t < GDKatomcnt && BATatoms[t].name) ?
BATatoms[t].name : "null";
+ return t >= 0 && t < GDKatomcnt && *BATatoms[t].name ? BATatoms[t].name
: "null";
}
int
@@ -1056,7 +1056,7 @@
*buf = GDKmalloc(4);
if (*buf == NULL)
return -1;
- strcpy(*buf, "nil");
+ strncpy(*buf, "nil", 4);
return 3;
}
@@ -1098,7 +1098,7 @@
{
@:atommem(char,@1Strlen)@
if (*src == @1_nil) {
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
}
snprintf(*dst, *len, @2, (@3) *src);
@@ -1129,9 +1129,9 @@
voidToStr(str *dst, int *len, void *src)
{
(void) src;
- @:atommem(char,3)@
+ @:atommem(char,4)@
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
}
@@ -1340,7 +1340,7 @@
@:atommem(char,chrStrlen)@
if (*src == chr_nil) {
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
} else {
str p = *dst;
@@ -1348,7 +1348,7 @@
*p++ = '\'';
if (*src & 0x80) {
#ifdef ASCII_CHR
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
#else
*p++ = 0xC0 | ((*src >> 6) & 0x03);
@@ -1427,13 +1427,13 @@
@:atommem(char,6)@
if (*src == bit_nil) {
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
} else if (*src) {
- strcpy(*dst, "true");
+ strncpy(*dst, "true", *len);
return 4;
}
- strcpy(*dst, "false");
+ strncpy(*dst, "false", *len);
return 5;
}
@@ -1489,7 +1489,7 @@
if (b == bat_nil || (s = BBPname(b)) == NULL || *s == 0) {
@:atommem(char,4)@
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
}
i = (int) (strlen(s) + 4);
@@ -1605,10 +1605,10 @@
@:atommem(char,lngStrlen)@
if (*src == lng_nil) {
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
}
- sprintf(*dst, LLFMT, *src);
+ snprintf(*dst, *len, LLFMT, *src);
return strlen(*dst);
}
@c
@@ -2359,7 +2359,7 @@
if (GDK_STRNIL((str) src)) {
@:atommem(char,4)@
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
} else {
int sz = escapedStrlen(src);
@@ -2572,7 +2572,7 @@
@:atommem(char,oidStrlen)@
if (*src == oid_nil) {
- strcpy(*dst, "nil");
+ strncpy(*dst, "nil", *len);
return 3;
}
snprintf(*dst, *len, OIDFMT "@0", *src);
diff -r a22ff796a793 -r 305b4f574d81 common/stream/stream.c
--- a/common/stream/stream.c Thu Jan 13 12:54:08 2011 +0100
+++ b/common/stream/stream.c Thu Jan 13 14:07:43 2011 +0100
@@ -1922,11 +1922,11 @@
/* if unconverted data from a previous call remains, add it to
the start of the new data, using temporary space */
if (ic->buflen > 0) {
- char *s = alloca(ic->buflen + inbytesleft);
-
- memcpy(s, ic->buffer, ic->buflen);
- memcpy(s + ic->buflen, buf, inbytesleft);
- buf = s;
+ char *bf = alloca(ic->buflen + inbytesleft);
+
+ memcpy(bf, ic->buffer, ic->buflen);
+ memcpy(bf + ic->buflen, buf, inbytesleft);
+ buf = bf;
inbytesleft += ic->buflen;
ic->buflen = 0;
}
diff -r a22ff796a793 -r 305b4f574d81 sql/src/server/sql_semantic.c
--- a/sql/src/server/sql_semantic.c Thu Jan 13 12:54:08 2011 +0100
+++ b/sql/src/server/sql_semantic.c Thu Jan 13 14:07:43 2011 +0100
@@ -290,7 +290,8 @@
m->session->status = status;
m->cascade_action = cascade_action;
if (e) {
- strcpy(m->errstr, e);
+ strncpy(m->errstr, e, ERRSIZE);
+ m->errstr[ERRSIZE - 1] = '\0';
_DELETE(e);
}
}
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list