mirror of
git://git.sv.gnu.org/findutils.git
synced 2026-01-31 05:38:59 +01:00
* lib/extendbuf.c (xextendbuf): New function; extends the buffer, but calls xalloc_die on failure. On the the other hand, extendbuf returns NULL on failure. (decide_size): If wanted>SIZE_MAX/2, return wanted. This means that for very large buffers, performance on repeated extension degrades from linear to quadratic (instead of just failing at that point, as before). * lib/savedirinfo.c (xsavedir): Use xextendbuf rather than extendbuf, now that there is a difference in semantics. * find/fstype.c (get_mounted_filesystems): If extendbuf returns NULL, fail (by returning NULL ourselves). (get_mounted_devices): Likewise. Signed-off-by: James Youngman <jay@gnu.org>
27 lines
959 B
C
27 lines
959 B
C
/* extendbuf.h -- Manage a dynamically-alloicated buffer
|
|
|
|
Copyright (C) 2004, 2010 Free Software Foundation, Inc.
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
#ifndef INC_EXTENDBUF_H
|
|
#define INC_EXTENDBUF_H 1
|
|
|
|
void *extendbuf(void* existing, size_t wanted, size_t *allocated);
|
|
void *xextendbuf(void* existing, size_t wanted, size_t *allocated);
|
|
|
|
|
|
#endif
|