]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Trent Mick: familiar simple Win64 patches
authorGuido van Rossum <guido@python.org>
Wed, 28 Jun 2000 22:00:02 +0000 (22:00 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 28 Jun 2000 22:00:02 +0000 (22:00 +0000)
Parser/myreadline.c
Parser/parsetok.c
Parser/pgenmain.c
Parser/tokenizer.c

index 9bf770eec5b0f47d21b6f4208b4b622267527819..7ce0cdf2b1784983d1362a6bad93ecf993c93a3a 100644 (file)
@@ -86,7 +86,7 @@ char *
 PyOS_StdioReadline(prompt)
        char *prompt;
 {
-       int n;
+       size_t n;
        char *p;
        n = 100;
        if ((p = PyMem_MALLOC(n)) == NULL)
@@ -95,7 +95,7 @@ PyOS_StdioReadline(prompt)
        if (prompt)
                fprintf(stderr, "%s", prompt);
        fflush(stderr);
-       switch (my_fgets(p, n, stdin)) {
+       switch (my_fgets(p, (int)n, stdin)) {
        case 0: /* Normal case */
                break;
        case 1: /* Interrupt */
@@ -116,11 +116,14 @@ PyOS_StdioReadline(prompt)
 #endif
        n = strlen(p);
        while (n > 0 && p[n-1] != '\n') {
-               int incr = n+2;
+               size_t incr = n+2;
                p = PyMem_REALLOC(p, n + incr);
                if (p == NULL)
                        return NULL;
-               if (my_fgets(p+n, incr, stdin) != 0)
+               if (incr > INT_MAX) {
+                       PyErr_SetString(PyExc_OverflowError, "input line too long");
+               }
+               if (my_fgets(p+n, (int)incr, stdin) != 0)
                        break;
                n += strlen(p+n);
        }
index 7e878599f596104a0d81fa508f35693db0cc8d1a..6e8523b44863604f746ac6113205b01ae7ae5acb 100644 (file)
@@ -136,7 +136,7 @@ parsetok(tok, g, start, err_ret)
        for (;;) {
                char *a, *b;
                int type;
-               int len;
+               size_t len;
                char *str;
 
                type = PyTokenizer_Get(tok, &a, &b);
@@ -184,7 +184,7 @@ parsetok(tok, g, start, err_ret)
                err_ret->lineno = tok->lineno;
                err_ret->offset = tok->cur - tok->buf;
                if (tok->buf != NULL) {
-                       int len = tok->inp - tok->buf;
+                       size_t len = tok->inp - tok->buf;
                        err_ret->text = PyMem_NEW(char, len + 1);
                        if (err_ret->text != NULL) {
                                if (len > 0)
index 34c3b01d9a668731f438ddc5ace20f706d0a3460..569a5889013b097a165bf3722e271bcce57f1aa5 100644 (file)
@@ -127,7 +127,7 @@ getgrammar(filename)
                fprintf(stderr, "Parsing error %d, line %d.\n",
                        err.error, err.lineno);
                if (err.text != NULL) {
-                       int i;
+                       size_t i;
                        fprintf(stderr, "%s", err.text);
                        i = strlen(err.text);
                        if (i == 0 || err.text[i-1] != '\n')
@@ -195,7 +195,7 @@ char *
 PyOS_Readline(prompt)
        char *prompt;
 {
-       int n = 1000;
+       size_t n = 1000;
        char *p = PyMem_MALLOC(n);
        char *q;
        if (p == NULL)
index 7d9a273039b24ffea3925ee8f50e22aecd1601aa..3337c75a1b92b3cc3d41973a3ae03754929744f9 100644 (file)
@@ -223,9 +223,9 @@ tok_nextc(tok)
                                tok->done = E_EOF;
                        }
                        else if (tok->start != NULL) {
-                               int start = tok->start - tok->buf;
-                               int oldlen = tok->cur - tok->buf;
-                               int newlen = oldlen + strlen(new);
+                               size_t start = tok->start - tok->buf;
+                               size_t oldlen = tok->cur - tok->buf;
+                               size_t newlen = oldlen + strlen(new);
                                char *buf = tok->buf;
                                PyMem_RESIZE(buf, char, newlen+1);
                                tok->lineno++;