From 72093ce62f1e09db86452720fe8280ad66824cde Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 19 Oct 2004 12:06:01 +0000 Subject: r3064: - use UINT8_MAX and UINT16_MAX instead of hex values for idr_get_new() limits - change idr_get_new() to use > instead of >= in the limit check (This used to be commit 834b09929bcb8aabdd151b7c2306001497cabdb4) --- source4/include/includes.h | 8 ++++++++ source4/lib/idtree.c | 4 ++-- source4/ntvfs/posix/pvfs_open.c | 2 +- source4/ntvfs/posix/pvfs_search.c | 4 ++-- source4/smb_server/conn.c | 2 +- 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; -- cgit