const VLOP_DELETE = 0x80;
const VLOP_DUMP = 0x100;
+/*
+ * Additional VLOP_xxxx constants cannot be added without breaking
+ * compatibility so must reuse values. New names are added for
+ * code readability.
+ */
+%#define VLOP_ADDSITE VLOP_DELETE
+%#define VLOP_RESTORE VLOP_DUMP
+
%#define VLOP_ALLOPERS ( VLOP_MOVE | VLOP_RELEASE | VLOP_BACKUP | VLOP_DELETE | VLOP_DUMP)
/* defines for convenience of vl users */
typedef vldbentry bulkentries<>;
typedef nvldbentry nbulkentries<>;
typedef uvldbentry ubulkentries<>;
-typedef afs_uint32 bulkaddrs<>;
+/*
+ * 500 is an arbitrary implementation limit, larger than what we support storing.
+ * It lets the XDR decoder detect an attack (excessively large input) and reject
+ * it without incurring excessive resource usage.
+ */
+typedef afs_uint32 bulkaddrs<500>;
struct VLCallBack {
afs_uint32 CallBackVersion;