[PATCH V2] libx11:lcDefConv.c fix use before check
Alan Coopersmith
alan.coopersmith at oracle.com
Fri Jun 6 17:01:16 PDT 2014
Sorry, but git am cannot apply this patch - even after fixing the missing
white space that your mailer seems to have lost, it still doesn't match
up to the code currently in git master.
-alan-
On 06/ 4/14 05:47 AM, walter harms wrote:
>
> * Do not use variables before checked for NULL.
> * remove some superfluid spaces (Mark Kettenis)
>
> Signed-off-by: Harms <wharms at bfs,de>
> ---
> modules/lc/def/lcDefConv.c | 35 +++++++++++++++++++++++++----------
> 1 file changed, 25 insertions(+), 10 deletions(-)
>
> diff --git a/modules/lc/def/lcDefConv.c b/modules/lc/def/lcDefConv.c
> index 3cd5c22..e14f5aa 100644
> --- a/modules/lc/def/lcDefConv.c
> +++ b/modules/lc/def/lcDefConv.c
> @@ -149,13 +149,14 @@ def_mbstowcs(
> XPointer *args,
> int num_args)
> {
> - const char *src = (const char *) *from;
> + const char *src;
> wchar_t *dst = (wchar_t *) *to;
> State state = (State) conv->state;
> int unconv = 0;
>
> if (from == NULL || *from == NULL)
> return 0;
>
> + src = (const char *) *from;
>
> while (*from_left && *to_left) {
> (*from_left)--;
> @@ -181,14 +182,16 @@ def_wcstombs(
> XPointer *args,
> int num_args)
> {
> - const wchar_t *src = (const wchar_t *) * from;
> + const wchar_t *src;
> char *dst = (char *) *to;
> State state = (State) conv->state;
> char ch[MB_LEN_MAX];
> int unconv = 0;
>
> if (from == NULL || *from == NULL)
> - return 0;
> + return 0;
> +
> + src = (const wchar_t *) *from;
>
> while (*from_left && *to_left) {
> (*from_left)--;
> @@ -214,7 +217,7 @@ mbstostr(
> XPointer *args,
> int num_args)
> {
> - const char *src = (const char *) *from;
> + const char *src;
> char *dst = (char *) *to;
> CodeSet codeset;
> State state = (State) conv->state;
> @@ -223,6 +226,7 @@ mbstostr(
>
> if (from == NULL || *from == NULL)
> return 0;
> + src = (const char *) *from;
>
> while (*from_left && *to_left) {
> ch = *src++;
> @@ -251,7 +255,7 @@ wcstostr(
> XPointer *args,
> int num_args)
> {
> - const wchar_t *src = (const wchar_t *) *from;
> + const wchar_t *src;
> char *dst = (char *) *to;
> CodeSet codeset;
> State state = (State) conv->state;
> @@ -261,6 +265,8 @@ wcstostr(
> if (from == NULL || *from == NULL)
> return 0;
>
> + src = (const wchar_t *) *from;
> +
> while (*from_left && *to_left) {
> (*from_left)--;
> if (state->WCtoMB (state, *src++, ch)) {
> @@ -290,7 +296,7 @@ mbstocs(
> XPointer *args,
> int num_args)
> {
> - const char *src = (const char *) *from;
> + const char *src;
> char *dst = (char *) *to;
> int length;
> State state = (State) conv->state;
> @@ -299,6 +305,7 @@ mbstocs(
>
> if (from == NULL || *from == NULL)
> return 0;
> + src = (const char *) *from;
>
> length = min(*from_left, *to_left);
>
> @@ -336,7 +343,7 @@ wcstocs(
> XPointer *args,
> int num_args)
> {
> - const wchar_t *src = (const wchar_t *) * from;
> + const wchar_t *src;
> char *dst = (char *) *to;
> State state = (State) conv->state;
> char cur_side = 0, ch[MB_LEN_MAX];
> @@ -346,6 +353,8 @@ wcstocs(
> if (from == NULL || *from == NULL)
> return 0;
>
> + src = (const wchar_t *) *from;
> +
> while (*from_left) {
> if ((found = state->WCtoMB (state, *src, ch)))
> break;
> @@ -398,7 +407,7 @@ cstombs(
> XPointer *args,
> int num_args)
> {
> - const char *src = (const char *) *from;
> + const char *src;
> char *dst = (char *) *to;
> CodeSet codeset;
> XlcCharSet charset;
> @@ -410,6 +419,8 @@ cstombs(
> if (from == NULL || *from == NULL)
> return 0;
>
> + src = (const char *) *from;
> +
> if (num_args > 0) {
> charset = (XlcCharSet) args[0];
> if (charset == NULL)
> @@ -467,7 +478,7 @@ cstowcs(
> XPointer *args,
> int num_args)
> {
> - const char *src = (const char *) *from;
> + const char *src;
> wchar_t *dst = (wchar_t *) *to;
> CodeSet codeset;
> XlcCharSet charset;
> @@ -479,6 +490,8 @@ cstowcs(
> if (from == NULL || *from == NULL)
> return 0;
>
> + src= (const char *) *from;
> +
> if (num_args > 0) {
> charset = (XlcCharSet) args[0];
> if (charset == NULL)
> @@ -539,13 +552,15 @@ strtombs(
> XPointer *args,
> int num_args)
> {
> - const char *src = (const char *) *from;
> + const char *src;
> char *dst = (char *) *to;
> int length;
>
> if (from == NULL || *from == NULL)
> return 0;
>
> + src = (const char *) *from;
> +
> length = min(*from_left, *to_left);
> while (length) {
> *dst++ = *src++;
>
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Engineering - http://blogs.oracle.com/alanc
More information about the xorg-devel
mailing list