re='\<(strn?casecmp|ffs(ll)?)\>' \
$(_sc_header_without_use)
-# Extract the raw list of symbol names with this:
-gl_extract_define_simple = \
- /^\# *define ([A-Z]\w+)\(/ and print $$1
-# Filter out duplicates and convert to a space-separated list:
-_intprops_names = \
- $(shell f=$(gnulib_dir)/lib/intprops.h; \
- perl -lne '$(gl_extract_define_simple)' $$f | sort -u | tr '\n' ' ')
-# Remove trailing space and convert to a regular expression:
-_intprops_syms_re = $(subst $(_sp),|,$(strip $(_intprops_names)))
-# Prohibit the inclusion of intprops.h without an actual use.
-sc_prohibit_intprops_without_use:
- @h='intprops.h' \
- re='\<($(_intprops_syms_re)) *\(' \
- $(_sc_header_without_use)
_stddef_syms_re = NULL|offsetof|ptrdiff_t|size_t|wchar_t
# Prohibit the inclusion of stddef.h without an actual use.
# ==================================================================
gl_other_headers_ ?= \
- intprops.h \
openat.h \
stat-macros.h
# define sa_assert(expr) /* empty */
#endif
+#define VIR_INT_MULTIPLY_OVERFLOW(a,b) (G_UNLIKELY ((b) > 0 && (a) > G_MAXINT / (b)))
+
/* The library itself is allowed to use deprecated functions /
* variables, so effectively undefine the deprecated attribute
* which would otherwise be defined in libvirt.h.
#include <config.h>
#include <sys/stat.h>
-#include "intprops.h"
-
#include "datatypes.h"
#include "viralloc.h"
#include "virfile.h"
virCheckPositiveArgGoto(ncpumaps, error);
virCheckPositiveArgGoto(maplen, error);
- if (INT_MULTIPLY_OVERFLOW(ncpumaps, maplen)) {
+ if (VIR_INT_MULTIPLY_OVERFLOW(ncpumaps, maplen)) {
virReportError(VIR_ERR_OVERFLOW, _("input too large: %d * %d"),
ncpumaps, maplen);
goto error;
else
virCheckZeroArgGoto(maplen, error);
- if (cpumaps && INT_MULTIPLY_OVERFLOW(maxinfo, maplen)) {
+ if (cpumaps && VIR_INT_MULTIPLY_OVERFLOW(maxinfo, maplen)) {
virReportError(VIR_ERR_OVERFLOW, _("input too large: %d * %d"),
maxinfo, maplen);
goto error;
#include "remote_daemon_stream.h"
#include "viruuid.h"
#include "vircommand.h"
-#include "intprops.h"
#include "virnetserverservice.h"
#include "virnetserver.h"
#include "virfile.h"
goto cleanup;
}
- if (INT_MULTIPLY_OVERFLOW(args->ncpumaps, args->maplen) ||
+ if (VIR_INT_MULTIPLY_OVERFLOW(args->ncpumaps, args->maplen) ||
args->ncpumaps * args->maplen > REMOTE_CPUMAPS_MAX) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo * maplen > REMOTE_CPUMAPS_MAX"));
goto cleanup;
goto cleanup;
}
- if (INT_MULTIPLY_OVERFLOW(args->maxinfo, args->maplen) ||
+ if (VIR_INT_MULTIPLY_OVERFLOW(args->maxinfo, args->maplen) ||
args->maxinfo * args->maplen > REMOTE_CPUMAPS_MAX) {
virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _("maxinfo * maplen > REMOTE_CPUMAPS_MAX"));
goto cleanup;
#include "viralloc.h"
#include "virfile.h"
#include "vircommand.h"
-#include "intprops.h"
#include "virtypedparam.h"
#include "viruri.h"
#include "virauth.h"
goto done;
}
- if (INT_MULTIPLY_OVERFLOW(ncpumaps, maplen) ||
+ if (VIR_INT_MULTIPLY_OVERFLOW(ncpumaps, maplen) ||
ncpumaps * maplen > REMOTE_CPUMAPS_MAX) {
virReportError(VIR_ERR_RPC,
_("vCPU map buffer length exceeds maximum: %d > %d"),
maxinfo, REMOTE_VCPUINFO_MAX);
goto done;
}
- if (INT_MULTIPLY_OVERFLOW(maxinfo, maplen) ||
+ if (VIR_INT_MULTIPLY_OVERFLOW(maxinfo, maplen) ||
maxinfo * maplen > REMOTE_CPUMAPS_MAX) {
virReportError(VIR_ERR_RPC,
_("vCPU map buffer length exceeds maximum: %d > %d"),