summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source4/include/includes.h8
-rw-r--r--source4/lib/idtree.c4
-rw-r--r--source4/ntvfs/posix/pvfs_open.c2
-rw-r--r--source4/ntvfs/posix/pvfs_search.c4
-rw-r--r--source4/smb_server/conn.c2
5 files changed, 14 insertions, 6 deletions
diff --git a/source4/include/includes.h b/source4/include/includes.h
index 85e4299efd..0290f652ab 100644
--- a/source4/include/includes.h
+++ b/source4/include/includes.h
@@ -466,6 +466,14 @@ typedef int socklen_t;
#define uint64 uint64_t
#endif
+#ifndef UINT8_MAX
+#define UINT8_MAX 255
+#endif
+
+#ifndef UINT16_MAX
+#define UINT16_MAX 65535
+#endif
+
/*
* Types for devices, inodes and offsets.
*/
diff --git a/source4/lib/idtree.c b/source4/lib/idtree.c
index 80f7df97a0..1243c4f3b9 100644
--- a/source4/lib/idtree.c
+++ b/source4/lib/idtree.c
@@ -322,7 +322,7 @@ void *idr_init(TALLOC_CTX *mem_ctx)
int idr_get_new(void *idp, void *ptr, int limit)
{
int ret = idr_get_new_above_int((struct idr *)idp, ptr, 0);
- if (ret >= limit) {
+ if (ret > limit) {
idr_remove(idp, ret);
return -1;
}
@@ -336,7 +336,7 @@ int idr_get_new(void *idp, void *ptr, int limit)
int idr_get_new_above(void *idp, void *ptr, int starting_id, int limit)
{
int ret = idr_get_new_above_int((struct idr *)idp, ptr, starting_id);
- if (ret >= limit) {
+ if (ret > limit) {
idr_remove(idp, ret);
return -1;
}
diff --git a/source4/ntvfs/posix/pvfs_open.c b/source4/ntvfs/posix/pvfs_open.c
index c255558369..fb81c86bcc 100644
--- a/source4/ntvfs/posix/pvfs_open.c
+++ b/source4/ntvfs/posix/pvfs_open.c
@@ -157,7 +157,7 @@ NTSTATUS pvfs_open(struct ntvfs_module_context *ntvfs,
return NT_STATUS_NO_MEMORY;
}
- fnum = idr_get_new(pvfs->idtree_fnum, f, 0x10000);
+ fnum = idr_get_new(pvfs->idtree_fnum, f, UINT16_MAX);
if (fnum == -1) {
talloc_free(f);
return NT_STATUS_TOO_MANY_OPENED_FILES;
diff --git a/source4/ntvfs/posix/pvfs_search.c b/source4/ntvfs/posix/pvfs_search.c
index 7b0da321d3..1464609e98 100644
--- a/source4/ntvfs/posix/pvfs_search.c
+++ b/source4/ntvfs/posix/pvfs_search.c
@@ -287,7 +287,7 @@ static NTSTATUS pvfs_search_first_old(struct ntvfs_module_context *ntvfs,
/* we need to give a handle back to the client so it
can continue a search */
- id = idr_get_new(pvfs->idtree_search, search, 0x100);
+ id = idr_get_new(pvfs->idtree_search, search, UINT8_MAX);
if (id == -1) {
return NT_STATUS_INSUFFICIENT_RESOURCES;
}
@@ -415,7 +415,7 @@ NTSTATUS pvfs_search_first(struct ntvfs_module_context *ntvfs,
return status;
}
- id = idr_get_new(pvfs->idtree_search, search, 0x10000);
+ id = idr_get_new(pvfs->idtree_search, search, UINT16_MAX);
if (id == -1) {
return NT_STATUS_INSUFFICIENT_RESOURCES;
}
diff --git a/source4/smb_server/conn.c b/source4/smb_server/conn.c
index 3cff83055d..cdfd3a0bcd 100644
--- a/source4/smb_server/conn.c
+++ b/source4/smb_server/conn.c
@@ -59,7 +59,7 @@ struct smbsrv_tcon *conn_new(struct smbsrv_connection *smb_conn)
tcon = talloc_zero_p(smb_conn, struct smbsrv_tcon);
if (!tcon) return NULL;
- i = idr_get_new(smb_conn->tree.idtree_tid, tcon, UINT16_MAX + 1);
+ i = idr_get_new(smb_conn->tree.idtree_tid, tcon, UINT16_MAX);
if (i == -1) {
DEBUG(1,("ERROR! Out of connection structures\n"));
return NULL;