Changeset: 1fe68d092235 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=1fe68d092235
Modified Files:
MonetDB/src/common/monet_options.mx
MonetDB/src/gdk/gdk.mx
MonetDB/src/gdk/gdk_posix.mx
MonetDB4/src/modules/contrib/txtsim.mx
MonetDB4/src/modules/plain/monettime.mx
MonetDB4/src/modules/plain/url.mx
MonetDB4/src/monet/monet_client.mx
clients/src/mapilib/Mapi.mx
pathfinder/runtime/xrpc_client.mx
sql/src/common/sql_string.mx
Branch: Jun2010
Log Message:
Protect ctype macros against negative values.
isspace and friends are only defined for EOF and values in the range
0...0xFF.
diffs (182 lines):
diff -r f2c23a2c31bb -r 1fe68d092235 MonetDB/src/common/monet_options.mx
--- a/MonetDB/src/common/monet_options.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/MonetDB/src/common/monet_options.mx Fri Jul 23 17:59:23 2010 +0200
@@ -274,7 +274,7 @@
char *s, *t, *val;
int quote;
- for (s = buf; *s && isspace((int) (*s)); s++)
+ for (s = buf; *s && isspace((int) (unsigned char) *s); s++)
;
if (*s == '#')
continue; /* commentary */
@@ -289,12 +289,12 @@
}
*val = 0;
- for (t = s; *t && !isspace((int) (*t)); t++)
+ for (t = s; *t && !isspace((int) (unsigned char) *t); t++)
;
*t = 0;
/* skip any leading blanks in the value part */
- for (val++; *val && isspace((int) (*val)); val++)
+ for (val++; *val && isspace((int) (unsigned char) *val); val++)
;
/* search to unquoted # */
@@ -311,7 +311,7 @@
exit(1);
}
/* remove trailing white space */
- while (isspace((int) (t[-1])))
+ while (isspace((int) (unsigned char) t[-1]))
t--;
*t++ = 0;
diff -r f2c23a2c31bb -r 1fe68d092235 MonetDB/src/gdk/gdk.mx
--- a/MonetDB/src/gdk/gdk.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/MonetDB/src/gdk/gdk.mx Fri Jul 23 17:59:23 2010 +0200
@@ -417,10 +417,10 @@
#define MIN(A,B) ((A)>(B)?(B):(A))
/* defines from ctype with casts that allow passing char values */
-#define GDKisprint(c) isprint((int) ((unsigned char) (c)))
-#define GDKisspace(c) isspace((int) ((unsigned char) (c)))
-#define GDKisalnum(c) isalnum((int) ((unsigned char) (c)))
-#define GDKisgraph(c) isgraph((int) ((unsigned char) (c)))
+#define GDKisprint(c) isprint((int) (unsigned char) (c))
+#define GDKisspace(c) isspace((int) (unsigned char) (c))
+#define GDKisalnum(c) isalnum((int) (unsigned char) (c))
+#define GDKisgraph(c) isgraph((int) (unsigned char) (c))
#define GDKisdigit(c) (((unsigned char) (c)) >= '0' && ((unsigned char) (c))
<= '9')
#define GDKisxcntrl(c) (((unsigned char) (c)) >= 128 && ((unsigned char) (c))
<= 160)
#define GDKisspecial(c) (((unsigned char) (c)) >= 161 && ((unsigned char) (c))
<= 191)
diff -r f2c23a2c31bb -r 1fe68d092235 MonetDB/src/gdk/gdk_posix.mx
--- a/MonetDB/src/gdk/gdk_posix.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/MonetDB/src/gdk/gdk_posix.mx Fri Jul 23 17:59:23 2010 +0200
@@ -1727,7 +1727,7 @@
if (base)
return base + 1;
- if (isalpha(file_name[0]) && file_name[1] == ':')
+ if (isalpha((int) (unsigned char) file_name[0]) && file_name[1] == ':')
return (char *) file_name + 2;
return (char *) file_name;
diff -r f2c23a2c31bb -r 1fe68d092235 MonetDB4/src/modules/contrib/txtsim.mx
--- a/MonetDB4/src/modules/contrib/txtsim.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/MonetDB4/src/modules/contrib/txtsim.mx Fri Jul 23 17:59:23 2010 +0200
@@ -275,7 +275,7 @@
/* keep first letter */
Key[0] = *Name;
- if (!isupper((int) (Key[0])))
+ if (!isupper((int) (unsigned char) Key[0]))
Key[0] = toupper(Key[0]);
LastLetter = *Name;
@@ -286,7 +286,7 @@
/* scan rest of string */
for (Index = 1; (Index <SoundexLen) &&*Name; Name++) {
/* use only letters */
- if (isalpha((int) (*Name))) {
+ if (isalpha((int) (unsigned char) *Name)) {
/* ignore duplicate successive chars */
if (LastLetter != *Name) {
/* new LastLetter */
diff -r f2c23a2c31bb -r 1fe68d092235 MonetDB4/src/modules/plain/monettime.mx
--- a/MonetDB4/src/modules/plain/monettime.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/MonetDB4/src/modules/plain/monettime.mx Fri Jul 23 17:59:23 2010 +0200
@@ -1957,7 +1957,8 @@
v = v * 10 + (*snew) - '0';
snew++;
}
- } else if (isupper((int) (*snew)) || islower((int) (*snew))) {
+ } else if (isupper((int) (unsigned char) *snew) ||
+ islower((int) (unsigned char) *snew)) {
switch (*snew++) {
case 'y':
case 'Y':
diff -r f2c23a2c31bb -r 1fe68d092235 MonetDB4/src/modules/plain/url.mx
--- a/MonetDB4/src/modules/plain/url.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/MonetDB4/src/modules/plain/url.mx Fri Jul 23 17:59:23 2010 +0200
@@ -660,12 +660,12 @@
static int
needEscape(char c)
{
- if( isalnum((int)c) )
- return 0;
- if( c == '#' || c == '-' || c == '_' || c == '.' || c == '!' ||
- c == '~' || c == '*' || c == '\'' || c == '(' || c == ')' )
- return 0;
- return 1;
+ if (isalnum((int) (unsigned char) c))
+ return 0;
+ if (c == '#' || c == '-' || c == '_' || c == '.' || c == '!' ||
+ c == '~' || c == '*' || c == '\'' || c == '(' || c == ')')
+ return 0;
+ return 1;
}
/* COMMAND "escape": this function applies the URI escaping rules defined in
diff -r f2c23a2c31bb -r 1fe68d092235 MonetDB4/src/monet/monet_client.mx
--- a/MonetDB4/src/monet/monet_client.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/MonetDB4/src/monet/monet_client.mx Fri Jul 23 17:59:23 2010 +0200
@@ -648,7 +648,8 @@
* only handle ASCII, so check for
* non-ASCII-ness separately */
if (!incomment &&
- ((*s & ~0x7F) != 0 || !isspace((int) *s)))
+ ((*s & ~0x7F) != 0 ||
+ !isspace((int) (unsigned char) *s)))
doflush = 0;
escaped = 0;
*p++ = *s;
diff -r f2c23a2c31bb -r 1fe68d092235 clients/src/mapilib/Mapi.mx
--- a/clients/src/mapilib/Mapi.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/clients/src/mapilib/Mapi.mx Fri Jul 23 17:59:23 2010 +0200
@@ -5086,7 +5086,7 @@
unsigned int fac = 1000000000;
unsigned int nsec = 0;
- for (n++; isdigit((int) val[n]); n++) {
+ for (n++; isdigit((int) (unsigned char) val[n]); n++) {
fac /= 10;
nsec += (val[n] - '0') * fac;
}
diff -r f2c23a2c31bb -r 1fe68d092235 pathfinder/runtime/xrpc_client.mx
--- a/pathfinder/runtime/xrpc_client.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/pathfinder/runtime/xrpc_client.mx Fri Jul 23 17:59:23 2010 +0200
@@ -586,7 +586,7 @@
}
}
- if (isdigit((int)dst[0])) {
+ if (isdigit((int) (unsigned char) dst[0])) {
if ((i = inet_addr(dst)) < 0) {
GDKerror("setup_connection: invalid IP address \"%s\"\n", dst);
return -1;
@@ -618,8 +618,8 @@
if (ret < 0) {
GDKerror("setup_connection: failed to setup connection with %s:%d\n",
dst, p);
- close(sock);
- return -1;
+ closesocket(sock);
+ return INVALID_SOCKET;
}
*port = p;
diff -r f2c23a2c31bb -r 1fe68d092235 sql/src/common/sql_string.mx
--- a/sql/src/common/sql_string.mx Fri Jul 23 16:02:10 2010 +0200
+++ b/sql/src/common/sql_string.mx Fri Jul 23 17:59:23 2010 +0200
@@ -118,7 +118,7 @@
{
char *res = s;
- for (; *s > 0 && isspace(*s); s++)
+ for (; *s && isspace((int) (unsigned char) *s); s++)
;
for (; *s && *s == '0'; s++)
;
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list