* stdlib/random_r.c (__setstate_r): Also compute end_ptr
	correctly.
	(__initstate_r): Set errno on error.
	(__random_r): Likewise.
	(__setstate_r): Correct offset when computing
	new rptr and fptr.  Test for arg_state being NULL.
	Reported by Michael Fischer <fischer@cs.yale.edu>.
This commit is contained in:
Ulrich Drepper 2000-08-22 03:49:38 +00:00
parent 7ca404adab
commit faa5756314
18 changed files with 42 additions and 30952 deletions

View File

@ -1,7 +1,12 @@
2000-08-21 Ulrich Drepper <drepper@redhat.com> 2000-08-21 Ulrich Drepper <drepper@redhat.com>
* stdlib/random_r.c (__setstate_r): Correct offset when computing * stdlib/random_r.c (__setstate_r): Also compute end_ptr
new rptr and fptr. Reported by Michael Fischer <fischer@cs.yale.edu>. correctly.
(__initstate_r): Set errno on error.
(__random_r): Likewise.
(__setstate_r): Correct offset when computing
new rptr and fptr. Test for arg_state being NULL.
Reported by Michael Fischer <fischer@cs.yale.edu>.
* posix/regex.h: Add macro definitions to allow compiling outside * posix/regex.h: Add macro definitions to allow compiling outside
glibc. glibc.

View File

@ -1,5 +1,21 @@
2000-08-21 Ulrich Drepper <drepper@redhat.com> 2000-08-21 Ulrich Drepper <drepper@redhat.com>
* locales/es_AR: Share LC_COLLATE description with es_ES.
* locales/es_BO: Likewise.
* locales/es_CL: Likewise.
* locales/es_CO: Likewise.
* locales/es_DO: Likewise.
* locales/es_GT: Likewise.
* locales/es_HN: Likewise.
* locales/es_MX: Likewise.
* locales/es_PA: Likewise.
* locales/es_PE: Likewise.
* locales/es_PY: Likewise.
* locales/es_SV: Likewise.
* locales/es_UY: Likewise.
* locales/es_VE: Likewise.
* locales/es_EC: Share LC_COLLATE description with es_US.
* locales/ko_KR: Updated for glibc 2.2. * locales/ko_KR: Updated for glibc 2.2.
Patches by Won-kyu Park <wkpark@chem.skku.ac.kr>. Patches by Won-kyu Park <wkpark@chem.skku.ac.kr>.
* SUPPORTED: Add ko_KR. * SUPPORTED: Add ko_KR.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -249,6 +249,7 @@ __initstate_r (seed, arg_state, n, buf)
return 0; return 0;
fail: fail:
__set_errno (EINVAL);
return -1; return -1;
} }
@ -274,7 +275,7 @@ __setstate_r (arg_state, buf)
int degree; int degree;
int separation; int separation;
if (buf == NULL) if (arg_state == NULL || buf == NULL)
goto fail; goto fail;
old_type = buf->rand_type; old_type = buf->rand_type;
@ -300,7 +301,7 @@ __setstate_r (arg_state, buf)
} }
buf->state = &new_state[1]; buf->state = &new_state[1];
/* Set end_ptr too. */ /* Set end_ptr too. */
buf->end_ptr = &new_state[degree]; buf->end_ptr = &new_state[1 + degree];
return 0; return 0;
@ -369,6 +370,7 @@ __random_r (buf, result)
return 0; return 0;
fail: fail:
__set_errno (EINVAL);
return -1; return -1;
} }