merge from gcc

This commit is contained in:
DJ Delorie 2011-04-20 19:06:46 +00:00
parent e7782cf63b
commit 4ff224cb8d
10 changed files with 83 additions and 83 deletions

View file

@ -1,3 +1,12 @@
2011-04-20 Jim Meyering <meyering@redhat.com>
* decNumber.c (decNumberFromString): Remove useless
if-before-free test.
(decNumberCompareTotalMag, decNumberExp, decNumberFMA): Likewise.
(decNumberLn, decNumberLog10, decNumberPower): Likewise.
(decNumberReduce, decNumberSquareRoot, decAddOp): Likewise.
(decDivideOp, NEEDTWO, decExpOp, LN2): Likewise.
2011-03-28 Mike Frysinger <vapier@gentoo.org>
* .gitignore: New file.

View file

@ -711,7 +711,7 @@ decNumber * decNumberFromString(decNumber *dn, const char chars[],
/* decNumberShow(dn); */
} while(0); /* [for break] */
if (allocres!=NULL) free(allocres); /* drop any storage used */
free(allocres); /* drop any storage used */
if (status!=0) decStatus(dn, status, set);
return dn;
} /* decNumberFromString */
@ -970,8 +970,8 @@ decNumber * decNumberCompareTotalMag(decNumber *res, const decNumber *lhs,
decCompareOp(res, lhs, rhs, set, COMPTOTAL, &status);
} while(0); /* end protected */
if (allocbufa!=NULL) free(allocbufa); /* drop any storage used */
if (allocbufb!=NULL) free(allocbufb); /* .. */
free(allocbufa); /* drop any storage used */
free(allocbufb); /* .. */
if (status!=0) decStatus(res, status, set);
return res;
} /* decNumberCompareTotalMag */
@ -1074,7 +1074,7 @@ decNumber * decNumberExp(decNumber *res, const decNumber *rhs,
} while(0); /* end protected */
#if DECSUBSET
if (allocrhs !=NULL) free(allocrhs); /* drop any storage used */
free(allocrhs); /* drop any storage used */
#endif
/* apply significant status */
if (status!=0) decStatus(res, status, set);
@ -1169,7 +1169,7 @@ decNumber * decNumberFMA(decNumber *res, const decNumber *lhs,
decAddOp(res, acc, fhs, set, 0, &status);
} while(0); /* end protected */
if (allocbufa!=NULL) free(allocbufa); /* drop any storage used */
free(allocbufa); /* drop any storage used */
if (status!=0) decStatus(res, status, set);
#if DECCHECK
decCheckInexact(res, set);
@ -1296,7 +1296,7 @@ decNumber * decNumberLn(decNumber *res, const decNumber *rhs,
} while(0); /* end protected */
#if DECSUBSET
if (allocrhs !=NULL) free(allocrhs); /* drop any storage used */
free(allocrhs); /* drop any storage used */
#endif
/* apply significant status */
if (status!=0) decStatus(res, status, set);
@ -1509,10 +1509,10 @@ decNumber * decNumberLog10(decNumber *res, const decNumber *rhs,
decDivideOp(res, a, b, &aset, DIVIDE, &status); /* into result */
} while(0); /* [for break] */
if (allocbufa!=NULL) free(allocbufa); /* drop any storage used */
if (allocbufb!=NULL) free(allocbufb); /* .. */
free(allocbufa); /* drop any storage used */
free(allocbufb); /* .. */
#if DECSUBSET
if (allocrhs !=NULL) free(allocrhs); /* .. */
free(allocrhs); /* .. */
#endif
/* apply significant status */
if (status!=0) decStatus(res, status, set);
@ -2253,11 +2253,11 @@ decNumber * decNumberPower(decNumber *res, const decNumber *lhs,
#endif
} while(0); /* end protected */
if (allocdac!=NULL) free(allocdac); /* drop any storage used */
if (allocinv!=NULL) free(allocinv); /* .. */
free(allocdac); /* drop any storage used */
free(allocinv); /* .. */
#if DECSUBSET
if (alloclhs!=NULL) free(alloclhs); /* .. */
if (allocrhs!=NULL) free(allocrhs); /* .. */
free(alloclhs); /* .. */
free(allocrhs); /* .. */
#endif
if (status!=0) decStatus(res, status, set);
#if DECCHECK
@ -2349,7 +2349,7 @@ decNumber * decNumberReduce(decNumber *res, const decNumber *rhs,
} while(0); /* end protected */
#if DECSUBSET
if (allocrhs !=NULL) free(allocrhs); /* .. */
free(allocrhs); /* .. */
#endif
if (status!=0) decStatus(res, status, set);/* then report status */
return res;
@ -3111,11 +3111,11 @@ decNumber * decNumberSquareRoot(decNumber *res, const decNumber *rhs,
decNumberCopy(res, a); /* a is now the result */
} while(0); /* end protected */
if (allocbuff!=NULL) free(allocbuff); /* drop any storage used */
if (allocbufa!=NULL) free(allocbufa); /* .. */
if (allocbufb!=NULL) free(allocbufb); /* .. */
free(allocbuff); /* drop any storage used */
free(allocbufa); /* .. */
free(allocbufb); /* .. */
#if DECSUBSET
if (allocrhs !=NULL) free(allocrhs); /* .. */
free(allocrhs); /* .. */
#endif
if (status!=0) decStatus(res, status, set);/* then report status */
#if DECCHECK
@ -4130,10 +4130,10 @@ static decNumber * decAddOp(decNumber *res, const decNumber *lhs,
}
} while(0); /* end protected */
if (allocacc!=NULL) free(allocacc); /* drop any storage used */
free(allocacc); /* drop any storage used */
#if DECSUBSET
if (allocrhs!=NULL) free(allocrhs); /* .. */
if (alloclhs!=NULL) free(alloclhs); /* .. */
free(allocrhs); /* .. */
free(alloclhs); /* .. */
#endif
return res;
} /* decAddOp */
@ -4782,11 +4782,11 @@ static decNumber * decDivideOp(decNumber *res,
#endif
} while(0); /* end protected */
if (varalloc!=NULL) free(varalloc); /* drop any storage used */
if (allocacc!=NULL) free(allocacc); /* .. */
free(varalloc); /* drop any storage used */
free(allocacc); /* .. */
#if DECSUBSET
if (allocrhs!=NULL) free(allocrhs); /* .. */
if (alloclhs!=NULL) free(alloclhs); /* .. */
free(allocrhs); /* .. */
free(alloclhs); /* .. */
#endif
return res;
} /* decDivideOp */
@ -5127,14 +5127,14 @@ static decNumber * decMultiplyOp(decNumber *res, const decNumber *lhs,
decFinish(res, set, &residue, status); /* final cleanup */
} while(0); /* end protected */
if (allocacc!=NULL) free(allocacc); /* drop any storage used */
free(allocacc); /* drop any storage used */
#if DECSUBSET
if (allocrhs!=NULL) free(allocrhs); /* .. */
if (alloclhs!=NULL) free(alloclhs); /* .. */
free(allocrhs); /* .. */
free(alloclhs); /* .. */
#endif
#if FASTMUL
if (allocrhi!=NULL) free(allocrhi); /* .. */
if (alloclhi!=NULL) free(alloclhi); /* .. */
free(allocrhi); /* .. */
free(alloclhi); /* .. */
#endif
return res;
} /* decMultiplyOp */
@ -5483,9 +5483,9 @@ decNumber * decExpOp(decNumber *res, const decNumber *rhs,
decFinish(res, set, &residue, status); /* cleanup/set flags */
} while(0); /* end protected */
if (allocrhs !=NULL) free(allocrhs); /* drop any storage used */
if (allocbufa!=NULL) free(allocbufa); /* .. */
if (allocbuft!=NULL) free(allocbuft); /* .. */
free(allocrhs); /* drop any storage used */
free(allocbufa); /* .. */
free(allocbuft); /* .. */
/* [status is handled by caller] */
return res;
} /* decExpOp */
@ -5794,8 +5794,8 @@ decNumber * decLnOp(decNumber *res, const decNumber *rhs,
decFinish(res, set, &residue, status); /* cleanup/set flags */
} while(0); /* end protected */
if (allocbufa!=NULL) free(allocbufa); /* drop any storage used */
if (allocbufb!=NULL) free(allocbufb); /* .. */
free(allocbufa); /* drop any storage used */
free(allocbufb); /* .. */
/* [status is handled by caller] */
return res;
} /* decLnOp */
@ -5959,8 +5959,8 @@ static decNumber * decQuantizeOp(decNumber *res, const decNumber *lhs,
} while(0); /* end protected */
#if DECSUBSET
if (allocrhs!=NULL) free(allocrhs); /* drop any storage used */
if (alloclhs!=NULL) free(alloclhs); /* .. */
free(allocrhs); /* drop any storage used */
free(alloclhs); /* .. */
#endif
return res;
} /* decQuantizeOp */
@ -6142,8 +6142,8 @@ decNumber * decCompareOp(decNumber *res, const decNumber *lhs,
}
}
#if DECSUBSET
if (allocrhs!=NULL) free(allocrhs); /* free any storage used */
if (alloclhs!=NULL) free(alloclhs); /* .. */
free(allocrhs); /* free any storage used */
free(alloclhs); /* .. */
#endif
return res;
} /* decCompareOp */
@ -6277,7 +6277,7 @@ static Int decUnitCompare(const Unit *a, Int alength,
result=(*u==0 ? 0 : +1);
}
/* clean up and return the result */
if (allocacc!=NULL) free(allocacc); /* drop any storage used */
free(allocacc); /* drop any storage used */
return result;
} /* decUnitCompare */

View file

@ -1,3 +1,16 @@
2011-04-20 Jim Meyering <meyering@redhat.com>
* cp-demint.c (cplus_demangle_v3_components): Remove useless
if-before-free.
* cplus-dem.c (squangle_mop_up): Likewise.
(delete_non_B_K_work_stuff): Likewise.
* pex-common.c (pex_free): Likewise.
* pex-msdos.c (pex_msdos_cleanup): Likewise.
* pex-win32.c (mingw_rootify, msys_rootify): Likewise.
(win32_spawn): Likewise.
* regex.c (FREE_VAR, weak_alias): Likewise.
* spaces.c (spaces): Likewise.
2011-04-10 Jim Meyering <meyering@redhat.com>
Avoid memory overrun in a test leading to potential double-free.

View file

@ -206,10 +206,8 @@ cplus_demangle_v3_components (const char *mangled, int options, void **mem)
malloc (di.num_subs * sizeof (struct demangle_component *)));
if (di.comps == NULL || di.subs == NULL)
{
if (di.comps != NULL)
free (di.comps);
if (di.subs != NULL)
free (di.subs);
free (di.comps);
free (di.subs);
return NULL;
}

View file

@ -1311,8 +1311,7 @@ delete_non_B_K_work_stuff (struct work_stuff *work)
int i;
for (i = 0; i < work->ntmpl_args; i++)
if (work->tmpl_argvec[i])
free ((char*) work->tmpl_argvec[i]);
free ((char*) work->tmpl_argvec[i]);
free ((char*) work->tmpl_argvec);
work->tmpl_argvec = NULL;

View file

@ -623,12 +623,9 @@ pex_free (struct pex_obj *obj)
if (obj->next_input_name_allocated)
free (obj->next_input_name);
if (obj->children != NULL)
free (obj->children);
if (obj->status != NULL)
free (obj->status);
if (obj->time != NULL)
free (obj->time);
free (obj->children);
free (obj->status);
free (obj->time);
if (obj->remove_count > 0)
{

View file

@ -310,10 +310,8 @@ pex_msdos_cleanup (struct pex_obj *obj)
ms = (struct pex_msdos *) obj->sysdep;
for (i = 0; i < PEX_MSDOS_FILE_COUNT; ++i)
if (msdos->files[i] != NULL)
free (msdos->files[i]);
if (msdos->statuses != NULL)
free (msdos->statuses);
free (msdos->files[i]);
free (msdos->statuses);
free (msdos);
obj->sysdep = NULL;
}

View file

@ -210,10 +210,8 @@ mingw_rootify (const char *executable)
if (!namebuf || !foundbuf)
{
RegCloseKey (hKey);
if (namebuf)
free (namebuf);
if (foundbuf)
free (foundbuf);
free (namebuf);
free (foundbuf);
return executable;
}
@ -315,8 +313,7 @@ msys_rootify (const char *executable)
return tack_on_executable (buf, executable);
/* failed */
if (buf)
free (buf);
free (buf);
return executable;
}
#endif
@ -607,8 +604,7 @@ win32_spawn (const char *executable,
si,
pi))
{
if (env_block)
free (env_block);
free (env_block);
free (full_executable);
@ -618,18 +614,14 @@ win32_spawn (const char *executable,
/* Clean up. */
CloseHandle (pi->hThread);
free (full_executable);
if (env_block)
free (env_block);
free (env_block);
return (pid_t) pi->hProcess;
error:
if (env_block)
free (env_block);
if (cmdline)
free (cmdline);
if (full_executable)
free (full_executable);
free (env_block);
free (cmdline);
free (full_executable);
return (pid_t) -1;
}

View file

@ -4970,7 +4970,7 @@ weak_alias (__re_search_2, re_search_2)
#ifdef MATCH_MAY_ALLOCATE
# define FREE_VAR(var) if (var) REGEX_FREE (var); var = NULL
#else
# define FREE_VAR(var) if (var) free (var); var = NULL
# define FREE_VAR(var) free (var); var = NULL
#endif
#ifdef WCHAR
@ -8111,20 +8111,17 @@ weak_alias (__regerror, regerror)
void
regfree (regex_t *preg)
{
if (preg->buffer != NULL)
free (preg->buffer);
free (preg->buffer);
preg->buffer = NULL;
preg->allocated = 0;
preg->used = 0;
if (preg->fastmap != NULL)
free (preg->fastmap);
free (preg->fastmap);
preg->fastmap = NULL;
preg->fastmap_accurate = 0;
if (preg->translate != NULL)
free (preg->translate);
free (preg->translate);
preg->translate = NULL;
}
#ifdef _LIBC

View file

@ -53,10 +53,7 @@ spaces (int count)
if (count > maxsize)
{
if (buf)
{
free (buf);
}
free (buf);
buf = (char *) malloc (count + 1);
if (buf == (char *) 0)
return 0;