cellHandle->vos_new = 0;
}
} else {
+ if (*entriesp < 0)
+ *entriesp = 0;
+ if (*entriesp > blkentriesp->nbulkentries_len)
+ *entriesp = blkentriesp->nbulkentries_len;
rc = 1;
}
} else {
ubik_VL_ListAttributes(cellHandle->vos, 0, attrp,
entriesp, &arrayEntries);
if (tst == 0) {
+
+ if (*entriesp < 0)
+ *entriesp = 0;
+ if (*entriesp > arrayEntries.bulkentries_len)
+ *entriesp = arrayEntries.bulkentries_len;
+
blkentriesp->nbulkentries_val =
(nvldbentry *) malloc(*entriesp * sizeof(*blkentriesp));
if (blkentriesp->nbulkentries_val != NULL) {
if (arrayEntries.bulkentries_val) {
free(arrayEntries.bulkentries_val);
}
+
rc = 1;
}
}
if (code)
return code;
+ /* Ensure the number of entries claimed matches the no. returned */
+ if (*entriesp < 0)
+ *entriesp = 0;
+ if (*entriesp > arrayEntries.bulkentries_len)
+ *entriesp = arrayEntries.bulkentries_len;
+
convertBulkToNBulk(&arrayEntries, blkentriesp);
xdr_free((xdrproc_t) xdr_bulkentries, &arrayEntries);
newvlserver = vltype_old; /* Doesn't support new interface */
goto tryold;
}
+
+ if (code)
+ return code;
+
+ /* Ensure the number of entries claimed matches the no. returned */
+ if (*entriesp < 0)
+ *entriesp = 0;
+ if (*entriesp > blkentriesp->nbulkentries_len)
+ *entriesp = blkentriesp->nbulkentries_len;
+
return code;
}
if (code)
return code;
+ /* Ensure the number of entries claimed matches the no. returned */
+ if (*entriesp < 0)
+ *entriesp = 0;
+ if (*entriesp > arrayEntries.bulkentries_len)
+ *entriesp = arrayEntries.bulkentries_len;
+
convertBulkToUBulk(&arrayEntries, blkentriesp);
xdr_free((xdrproc_t) xdr_bulkentries, &arrayEntries);
newvlserver = vltype_old; /* Doesn't support new interface */
goto tryold;
}
-
if (code)
return code;
+ /* Ensure the number of entries claimed matches the no. returned */
+ if (*entriesp < 0)
+ *entriesp = 0;
+ if (*entriesp > narrayEntries.nbulkentries_len)
+ *entriesp = narrayEntries.nbulkentries_len;
+
convertNBulkToUBulk(&narrayEntries, blkentriesp);
xdr_free((xdrproc_t) xdr_bulkentries, &narrayEntries);
code =
ubik_VL_ListAttributesN2(cstruct, 0, attrp, (name ? name : ""),
thisindex, nentriesp, blkentriesp, nextindexp);
+ if (code)
+ return code;
+
+ /* Ensure the number of entries claimed matches the no. returned */
+ if (*nentriesp < 0)
+ *nentriesp = 0;
+ if (*nentriesp > blkentriesp->nbulkentries_len)
+ *nentriesp = blkentriesp->nbulkentries_len;
}
return code;
}
if (code)
return code;
+ /* Ensure the number of entries claimed matches the no. returned */
+ if (*nentriesp < 0)
+ *nentriesp = 0;
+ if (*nentriesp > narrayEntries.nbulkentries_len)
+ *nentriesp = narrayEntries.nbulkentries_len;
+
convertNBulkToUBulk(&narrayEntries, blkentriesp);
xdr_free((xdrproc_t) xdr_bulkentries, &narrayEntries);