diff options
| author | Paul Eggert | 2011-04-04 00:33:02 -0700 |
|---|---|---|
| committer | Paul Eggert | 2011-04-04 00:33:02 -0700 |
| commit | 06a0259a1a1661b6128780092ff4a3dd59bc0256 (patch) | |
| tree | 73f797472c0c7303eb0d7f0a1427a9bc25071f50 /src | |
| parent | e7b9e80fe230ed80004673124a6f9465d89f4882 (diff) | |
| download | emacs-06a0259a1a1661b6128780092ff4a3dd59bc0256.tar.gz emacs-06a0259a1a1661b6128780092ff4a3dd59bc0256.zip | |
* lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 2 | ||||
| -rw-r--r-- | src/lread.c | 31 |
2 files changed, 17 insertions, 16 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index ab296dded6f..6ee8ec17888 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,5 +1,7 @@ | |||
| 1 | 2011-04-04 Paul Eggert <eggert@cs.ucla.edu> | 1 | 2011-04-04 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 2 | ||
| 3 | * lread.c (lisp_file_lexically_bound_p): Use ints rather than endptrs. | ||
| 4 | |||
| 3 | * print.c (print_error_message): Avoid int overflow. | 5 | * print.c (print_error_message): Avoid int overflow. |
| 4 | 6 | ||
| 5 | * font.c (font_list_entities): Redo for clarity, | 7 | * font.c (font_list_entities): Redo for clarity, |
diff --git a/src/lread.c b/src/lread.c index 6a24569f552..e7bcd2b260b 100644 --- a/src/lread.c +++ b/src/lread.c | |||
| @@ -818,7 +818,8 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun) | |||
| 818 | 818 | ||
| 819 | while (in_file_vars) | 819 | while (in_file_vars) |
| 820 | { | 820 | { |
| 821 | char var[100], *var_end, val[100], *val_end; | 821 | char var[100], val[100]; |
| 822 | int i; | ||
| 822 | 823 | ||
| 823 | ch = READCHAR; | 824 | ch = READCHAR; |
| 824 | 825 | ||
| @@ -826,19 +827,18 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun) | |||
| 826 | while (ch == ' ' || ch == '\t') | 827 | while (ch == ' ' || ch == '\t') |
| 827 | ch = READCHAR; | 828 | ch = READCHAR; |
| 828 | 829 | ||
| 829 | var_end = var; | 830 | i = 0; |
| 830 | while (ch != ':' && ch != '\n' && ch != EOF) | 831 | while (ch != ':' && ch != '\n' && ch != EOF) |
| 831 | { | 832 | { |
| 832 | if (var_end < var + sizeof var - 1) | 833 | if (i < sizeof var - 1) |
| 833 | *var_end++ = ch; | 834 | var[i++] = ch; |
| 834 | UPDATE_BEG_END_STATE (ch); | 835 | UPDATE_BEG_END_STATE (ch); |
| 835 | ch = READCHAR; | 836 | ch = READCHAR; |
| 836 | } | 837 | } |
| 837 | 838 | ||
| 838 | while (var_end > var | 839 | while (i > 0 && (var[i - 1] == ' ' || var[i - 1] == '\t')) |
| 839 | && (var_end[-1] == ' ' || var_end[-1] == '\t')) | 840 | i--; |
| 840 | var_end--; | 841 | var[i] = '\0'; |
| 841 | *var_end = '\0'; | ||
| 842 | 842 | ||
| 843 | if (ch == ':') | 843 | if (ch == ':') |
| 844 | { | 844 | { |
| @@ -848,22 +848,21 @@ lisp_file_lexically_bound_p (Lisp_Object readcharfun) | |||
| 848 | while (ch == ' ' || ch == '\t') | 848 | while (ch == ' ' || ch == '\t') |
| 849 | ch = READCHAR; | 849 | ch = READCHAR; |
| 850 | 850 | ||
| 851 | val_end = val; | 851 | i = 0; |
| 852 | while (ch != ';' && ch != '\n' && ch != EOF && in_file_vars) | 852 | while (ch != ';' && ch != '\n' && ch != EOF && in_file_vars) |
| 853 | { | 853 | { |
| 854 | if (val_end < val + sizeof val - 1) | 854 | if (i < sizeof val - 1) |
| 855 | *val_end++ = ch; | 855 | val[i++] = ch; |
| 856 | UPDATE_BEG_END_STATE (ch); | 856 | UPDATE_BEG_END_STATE (ch); |
| 857 | ch = READCHAR; | 857 | ch = READCHAR; |
| 858 | } | 858 | } |
| 859 | if (! in_file_vars) | 859 | if (! in_file_vars) |
| 860 | /* The value was terminated by an end-marker, which | 860 | /* The value was terminated by an end-marker, which |
| 861 | remove. */ | 861 | remove. */ |
| 862 | val_end -= 3; | 862 | i -= 3; |
| 863 | while (val_end > val | 863 | while (i > 0 && (val[i - 1] == ' ' || val[i - 1] == '\t')) |
| 864 | && (val_end[-1] == ' ' || val_end[-1] == '\t')) | 864 | i--; |
| 865 | val_end--; | 865 | val[i] = '\0'; |
| 866 | *val_end = '\0'; | ||
| 867 | 866 | ||
| 868 | if (strcmp (var, "lexical-binding") == 0) | 867 | if (strcmp (var, "lexical-binding") == 0) |
| 869 | /* This is it... */ | 868 | /* This is it... */ |