mirror of
https://git.openafs.org/openafs.git
synced 2025-02-01 05:57:43 +00:00
windows-afsd-notification-20071104
the difference between osi_assert() and osi_assertx() is whether or not a description is specified as part of the call. When no message is specified afsd_notifier() is called with a NULL msgp parameter. This results in a null pointer dereference during the EventLog() call. As a result, none of the information describing the assertion is written to the log file. This commit sets a default message for use when no other message is provided and it replaces all calls to osi_assert with osi_assertx and adds descriptions.
This commit is contained in:
parent
bc7a0be8eb
commit
89ac3ec2f6
@ -61,6 +61,8 @@ static void afsd_notifier(char *msgp, char *filep, long line)
|
|||||||
#ifdef AFSIFS
|
#ifdef AFSIFS
|
||||||
int i;
|
int i;
|
||||||
#endif
|
#endif
|
||||||
|
if (!msgp)
|
||||||
|
msgp = "unspecified assert";
|
||||||
|
|
||||||
if (filep)
|
if (filep)
|
||||||
LogEvent(EVENTLOG_ERROR_TYPE, MSG_SERVICE_ERROR_STOP_WITH_MSG_AND_LOCATION,
|
LogEvent(EVENTLOG_ERROR_TYPE, MSG_SERVICE_ERROR_STOP_WITH_MSG_AND_LOCATION,
|
||||||
|
@ -1805,7 +1805,7 @@ long cm_BPlusDirBuildTree(cm_scache_t *scp, cm_user_t *userp, cm_req_t* reqp)
|
|||||||
osi_hyper_t thyper;
|
osi_hyper_t thyper;
|
||||||
LARGE_INTEGER start, end;
|
LARGE_INTEGER start, end;
|
||||||
|
|
||||||
osi_assert(scp->dirBplus == NULL);
|
osi_assertx(scp->dirBplus == NULL, "cm_BPlusDirBuildTree called on non-empty tree");
|
||||||
|
|
||||||
lock_AssertWrite(&scp->dirlock);
|
lock_AssertWrite(&scp->dirlock);
|
||||||
|
|
||||||
|
@ -89,7 +89,7 @@ static int buf_ShutdownFlag = 0;
|
|||||||
|
|
||||||
void buf_HoldLocked(cm_buf_t *bp)
|
void buf_HoldLocked(cm_buf_t *bp)
|
||||||
{
|
{
|
||||||
osi_assert(bp->magic == CM_BUF_MAGIC);
|
osi_assertx(bp->magic == CM_BUF_MAGIC,"incorrect cm_buf_t magic");
|
||||||
bp->refCount++;
|
bp->refCount++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,12 +105,12 @@ void buf_Hold(cm_buf_t *bp)
|
|||||||
void buf_ReleaseLocked(cm_buf_t *bp)
|
void buf_ReleaseLocked(cm_buf_t *bp)
|
||||||
{
|
{
|
||||||
/* ensure that we're in the LRU queue if our ref count is 0 */
|
/* ensure that we're in the LRU queue if our ref count is 0 */
|
||||||
osi_assert(bp->magic == CM_BUF_MAGIC);
|
osi_assertx(bp->magic == CM_BUF_MAGIC,"incorrect cm_buf_t magic");
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (bp->refCount == 0)
|
if (bp->refCount == 0)
|
||||||
osi_panic("buf refcount 0",__FILE__,__LINE__);;
|
osi_panic("buf refcount 0",__FILE__,__LINE__);;
|
||||||
#else
|
#else
|
||||||
osi_assert(bp->refCount > 0);
|
osi_assertx(bp->refCount > 0, "cm_buf_t refCount == 0");
|
||||||
#endif
|
#endif
|
||||||
if (--bp->refCount == 0) {
|
if (--bp->refCount == 0) {
|
||||||
if (!(bp->flags & CM_BUF_INLRU)) {
|
if (!(bp->flags & CM_BUF_INLRU)) {
|
||||||
@ -321,8 +321,10 @@ long buf_Init(int newFile, cm_buf_ops_t *opsp, afs_uint64 nbuffers)
|
|||||||
cm_data.buf_allp = NULL;
|
cm_data.buf_allp = NULL;
|
||||||
|
|
||||||
for (i=0; i<cm_data.buf_nbuffers; i++) {
|
for (i=0; i<cm_data.buf_nbuffers; i++) {
|
||||||
osi_assert(bp >= cm_data.bufHeaderBaseAddress && bp < (cm_buf_t *)cm_data.bufDataBaseAddress);
|
osi_assertx(bp >= cm_data.bufHeaderBaseAddress && bp < (cm_buf_t *)cm_data.bufDataBaseAddress,
|
||||||
osi_assert(data >= cm_data.bufDataBaseAddress && data < cm_data.bufEndOfData);
|
"invalid cm_buf_t address");
|
||||||
|
osi_assertx(data >= cm_data.bufDataBaseAddress && data < cm_data.bufEndOfData,
|
||||||
|
"invalid cm_buf_t data address");
|
||||||
|
|
||||||
/* allocate and zero some storage */
|
/* allocate and zero some storage */
|
||||||
memset(bp, 0, sizeof(cm_buf_t));
|
memset(bp, 0, sizeof(cm_buf_t));
|
||||||
@ -436,8 +438,8 @@ void buf_WaitIO(cm_scache_t * scp, cm_buf_t *bp)
|
|||||||
int release = 0;
|
int release = 0;
|
||||||
|
|
||||||
if (scp)
|
if (scp)
|
||||||
osi_assert(scp->magic == CM_SCACHE_MAGIC);
|
osi_assertx(scp->magic == CM_SCACHE_MAGIC, "invalid cm_scache_t magic");
|
||||||
osi_assert(bp->magic == CM_BUF_MAGIC);
|
osi_assertx(bp->magic == CM_BUF_MAGIC, "invalid cm_buf_t magic");
|
||||||
|
|
||||||
while (1) {
|
while (1) {
|
||||||
/* if no IO is happening, we're done */
|
/* if no IO is happening, we're done */
|
||||||
@ -549,7 +551,7 @@ long buf_CleanAsyncLocked(cm_buf_t *bp, cm_req_t *reqp)
|
|||||||
cm_scache_t * scp = NULL;
|
cm_scache_t * scp = NULL;
|
||||||
osi_hyper_t offset;
|
osi_hyper_t offset;
|
||||||
|
|
||||||
osi_assert(bp->magic == CM_BUF_MAGIC);
|
osi_assertx(bp->magic == CM_BUF_MAGIC, "invalid cm_buf_t magic");
|
||||||
|
|
||||||
while ((bp->flags & CM_BUF_DIRTY) == CM_BUF_DIRTY) {
|
while ((bp->flags & CM_BUF_DIRTY) == CM_BUF_DIRTY) {
|
||||||
isdirty = 1;
|
isdirty = 1;
|
||||||
@ -629,7 +631,7 @@ void buf_Recycle(cm_buf_t *bp)
|
|||||||
cm_buf_t *tbp;
|
cm_buf_t *tbp;
|
||||||
cm_buf_t *prevBp, *nextBp;
|
cm_buf_t *prevBp, *nextBp;
|
||||||
|
|
||||||
osi_assert(bp->magic == CM_BUF_MAGIC);
|
osi_assertx(bp->magic == CM_BUF_MAGIC, "invalid cm_buf_t magic");
|
||||||
|
|
||||||
/* if we get here, we know that the buffer still has a 0 ref count,
|
/* if we get here, we know that the buffer still has a 0 ref count,
|
||||||
* and that it is clean and has no currently pending I/O. This is
|
* and that it is clean and has no currently pending I/O. This is
|
||||||
@ -641,8 +643,9 @@ void buf_Recycle(cm_buf_t *bp)
|
|||||||
osi_Log3( buf_logp, "buf_Recycle recycles 0x%p, off 0x%x:%08x",
|
osi_Log3( buf_logp, "buf_Recycle recycles 0x%p, off 0x%x:%08x",
|
||||||
bp, bp->offset.HighPart, bp->offset.LowPart);
|
bp, bp->offset.HighPart, bp->offset.LowPart);
|
||||||
|
|
||||||
osi_assert(bp->refCount == 0);
|
osi_assertx(bp->refCount == 0, "cm_buf_t refcount != 0");
|
||||||
osi_assert(!(bp->flags & (CM_BUF_READING | CM_BUF_WRITING | CM_BUF_DIRTY)));
|
osi_assertx(!(bp->flags & (CM_BUF_READING | CM_BUF_WRITING | CM_BUF_DIRTY)),
|
||||||
|
"incorrect cm_buf_t flags");
|
||||||
lock_AssertWrite(&buf_globalLock);
|
lock_AssertWrite(&buf_globalLock);
|
||||||
|
|
||||||
if (bp->flags & CM_BUF_INHASH) {
|
if (bp->flags & CM_BUF_INHASH) {
|
||||||
@ -990,7 +993,7 @@ long buf_Get(struct cm_scache *scp, osi_hyper_t *offsetp, cm_buf_t **bufpp)
|
|||||||
*/
|
*/
|
||||||
if (created) {
|
if (created) {
|
||||||
/* load the page; freshly created pages should be idle */
|
/* load the page; freshly created pages should be idle */
|
||||||
osi_assert(!(bp->flags & (CM_BUF_READING | CM_BUF_WRITING)));
|
osi_assertx(!(bp->flags & (CM_BUF_READING | CM_BUF_WRITING)), "incorrect cm_buf_t flags");
|
||||||
|
|
||||||
/* start the I/O; may drop lock */
|
/* start the I/O; may drop lock */
|
||||||
bp->flags |= CM_BUF_READING;
|
bp->flags |= CM_BUF_READING;
|
||||||
@ -1096,7 +1099,7 @@ long buf_CountFreeList(void)
|
|||||||
long buf_CleanAsync(cm_buf_t *bp, cm_req_t *reqp)
|
long buf_CleanAsync(cm_buf_t *bp, cm_req_t *reqp)
|
||||||
{
|
{
|
||||||
long code;
|
long code;
|
||||||
osi_assert(bp->magic == CM_BUF_MAGIC);
|
osi_assertx(bp->magic == CM_BUF_MAGIC, "invalid cm_buf_t magic");
|
||||||
|
|
||||||
lock_ObtainMutex(&bp->mx);
|
lock_ObtainMutex(&bp->mx);
|
||||||
code = buf_CleanAsyncLocked(bp, reqp);
|
code = buf_CleanAsyncLocked(bp, reqp);
|
||||||
@ -1108,7 +1111,7 @@ long buf_CleanAsync(cm_buf_t *bp, cm_req_t *reqp)
|
|||||||
/* wait for a buffer's cleaning to finish */
|
/* wait for a buffer's cleaning to finish */
|
||||||
void buf_CleanWait(cm_scache_t * scp, cm_buf_t *bp)
|
void buf_CleanWait(cm_scache_t * scp, cm_buf_t *bp)
|
||||||
{
|
{
|
||||||
osi_assert(bp->magic == CM_BUF_MAGIC);
|
osi_assertx(bp->magic == CM_BUF_MAGIC, "invalid cm_buf_t magic");
|
||||||
|
|
||||||
lock_ObtainMutex(&bp->mx);
|
lock_ObtainMutex(&bp->mx);
|
||||||
if (bp->flags & CM_BUF_WRITING) {
|
if (bp->flags & CM_BUF_WRITING) {
|
||||||
@ -1124,8 +1127,8 @@ void buf_CleanWait(cm_scache_t * scp, cm_buf_t *bp)
|
|||||||
*/
|
*/
|
||||||
void buf_SetDirty(cm_buf_t *bp, afs_uint32 offset, afs_uint32 length)
|
void buf_SetDirty(cm_buf_t *bp, afs_uint32 offset, afs_uint32 length)
|
||||||
{
|
{
|
||||||
osi_assert(bp->magic == CM_BUF_MAGIC);
|
osi_assertx(bp->magic == CM_BUF_MAGIC, "invalid cm_buf_t magic");
|
||||||
osi_assert(bp->refCount > 0);
|
osi_assertx(bp->refCount > 0, "cm_buf_t refcount 0");
|
||||||
|
|
||||||
lock_ObtainWrite(&buf_globalLock);
|
lock_ObtainWrite(&buf_globalLock);
|
||||||
if (bp->flags & CM_BUF_DIRTY) {
|
if (bp->flags & CM_BUF_DIRTY) {
|
||||||
@ -1375,7 +1378,7 @@ long buf_Truncate(cm_scache_t *scp, cm_user_t *userp, cm_req_t *reqp,
|
|||||||
* visible again.
|
* visible again.
|
||||||
*/
|
*/
|
||||||
bufferPos = sizep->LowPart & (cm_data.buf_blockSize - 1);
|
bufferPos = sizep->LowPart & (cm_data.buf_blockSize - 1);
|
||||||
osi_assert(bufferPos != 0);
|
osi_assertx(bufferPos != 0, "non-zero bufferPos");
|
||||||
memset(bufp->datap + bufferPos, 0,
|
memset(bufp->datap + bufferPos, 0,
|
||||||
cm_data.buf_blockSize - bufferPos);
|
cm_data.buf_blockSize - bufferPos);
|
||||||
}
|
}
|
||||||
|
@ -1416,7 +1416,7 @@ int SRXAFSCB_GetCacheConfig(struct rx_call *callp,
|
|||||||
#ifndef SIZE_MAX
|
#ifndef SIZE_MAX
|
||||||
#define SIZE_MAX UINT_MAX
|
#define SIZE_MAX UINT_MAX
|
||||||
#endif
|
#endif
|
||||||
osi_assert(allocsize < SIZE_MAX);
|
osi_assertx(allocsize < SIZE_MAX, "allocsize >= SIZE_MAX");
|
||||||
#endif
|
#endif
|
||||||
*configCount = (afs_uint32)allocsize;
|
*configCount = (afs_uint32)allocsize;
|
||||||
config->cacheConfig_val = t_config;
|
config->cacheConfig_val = t_config;
|
||||||
@ -1547,10 +1547,12 @@ void cm_EndCallbackGrantingCall(cm_scache_t *scp, cm_callbackRequest_t *cbrp,
|
|||||||
|
|
||||||
lock_ObtainWrite(&cm_callbackLock);
|
lock_ObtainWrite(&cm_callbackLock);
|
||||||
if (flags & CM_CALLBACK_MAINTAINCOUNT) {
|
if (flags & CM_CALLBACK_MAINTAINCOUNT) {
|
||||||
osi_assert(cm_activeCallbackGrantingCalls > 0);
|
osi_assertx(cm_activeCallbackGrantingCalls > 0,
|
||||||
|
"CM_CALLBACK_MAINTAINCOUNT && cm_activeCallbackGrantingCalls == 0");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
osi_assert(cm_activeCallbackGrantingCalls-- > 0);
|
osi_assertx(cm_activeCallbackGrantingCalls-- > 0,
|
||||||
|
"!CM_CALLBACK_MAINTAINCOUNT && cm_activeCallbackGrantingCalls == 0");
|
||||||
}
|
}
|
||||||
if (cm_activeCallbackGrantingCalls == 0)
|
if (cm_activeCallbackGrantingCalls == 0)
|
||||||
freeFlag = 1;
|
freeFlag = 1;
|
||||||
|
@ -34,7 +34,7 @@ afs_int32 cryptall = 0;
|
|||||||
void cm_PutConn(cm_conn_t *connp)
|
void cm_PutConn(cm_conn_t *connp)
|
||||||
{
|
{
|
||||||
lock_ObtainWrite(&cm_connLock);
|
lock_ObtainWrite(&cm_connLock);
|
||||||
osi_assert(connp->refCount-- > 0);
|
osi_assertx(connp->refCount-- > 0, "cm_conn_t refcount 0");
|
||||||
lock_ReleaseWrite(&cm_connLock);
|
lock_ReleaseWrite(&cm_connLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -805,7 +805,7 @@ static void cm_NewRXConnection(cm_conn_t *tcp, cm_ucell_t *ucellp,
|
|||||||
serviceID = 52;
|
serviceID = 52;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
osi_assert(serverp->type == CM_SERVER_FILE);
|
osi_assertx(serverp->type == CM_SERVER_FILE, "incorrect server type");
|
||||||
port = htons(7000);
|
port = htons(7000);
|
||||||
serviceID = 1;
|
serviceID = 1;
|
||||||
}
|
}
|
||||||
@ -825,7 +825,7 @@ static void cm_NewRXConnection(cm_conn_t *tcp, cm_ucell_t *ucellp,
|
|||||||
tcp->cryptlevel = rxkad_clear;
|
tcp->cryptlevel = rxkad_clear;
|
||||||
secObjp = rxnull_NewClientSecurityObject();
|
secObjp = rxnull_NewClientSecurityObject();
|
||||||
}
|
}
|
||||||
osi_assert(secObjp != NULL);
|
osi_assertx(secObjp != NULL, "null rx_securityClass");
|
||||||
tcp->callp = rx_NewConnection(serverp->addr.sin_addr.s_addr,
|
tcp->callp = rx_NewConnection(serverp->addr.sin_addr.s_addr,
|
||||||
port,
|
port,
|
||||||
serviceID,
|
serviceID,
|
||||||
|
@ -95,7 +95,7 @@ void cm_BkgDaemon(long parm)
|
|||||||
}
|
}
|
||||||
|
|
||||||
osi_QRemoveHT((osi_queue_t **) &cm_bkgListp, (osi_queue_t **) &cm_bkgListEndp, &rp->q);
|
osi_QRemoveHT((osi_queue_t **) &cm_bkgListp, (osi_queue_t **) &cm_bkgListEndp, &rp->q);
|
||||||
osi_assert(cm_bkgQueueCount-- > 0);
|
osi_assertx(cm_bkgQueueCount-- > 0, "cm_bkgQueueCount 0");
|
||||||
lock_ReleaseWrite(&cm_daemonLock);
|
lock_ReleaseWrite(&cm_daemonLock);
|
||||||
|
|
||||||
osi_Log1(afsd_logp,"cm_BkgDaemon processing request 0x%p", rp);
|
osi_Log1(afsd_logp,"cm_BkgDaemon processing request 0x%p", rp);
|
||||||
@ -464,20 +464,20 @@ void cm_InitDaemon(int nDaemons)
|
|||||||
/* creating IP Address Change monitor daemon */
|
/* creating IP Address Change monitor daemon */
|
||||||
phandle = thrd_Create((SecurityAttrib) 0, 0,
|
phandle = thrd_Create((SecurityAttrib) 0, 0,
|
||||||
(ThreadFunc) cm_IpAddrDaemon, 0, 0, &pid, "cm_IpAddrDaemon");
|
(ThreadFunc) cm_IpAddrDaemon, 0, 0, &pid, "cm_IpAddrDaemon");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "cm_IpAddrDaemon thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
|
|
||||||
/* creating pinging daemon */
|
/* creating pinging daemon */
|
||||||
phandle = thrd_Create((SecurityAttrib) 0, 0,
|
phandle = thrd_Create((SecurityAttrib) 0, 0,
|
||||||
(ThreadFunc) cm_Daemon, 0, 0, &pid, "cm_Daemon");
|
(ThreadFunc) cm_Daemon, 0, 0, &pid, "cm_Daemon");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "cm_Daemon thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
|
|
||||||
for(i=0; i < nDaemons; i++) {
|
for(i=0; i < nDaemons; i++) {
|
||||||
phandle = thrd_Create((SecurityAttrib) 0, 0,
|
phandle = thrd_Create((SecurityAttrib) 0, 0,
|
||||||
(ThreadFunc) cm_BkgDaemon, 0, 0, &pid,
|
(ThreadFunc) cm_BkgDaemon, 0, 0, &pid,
|
||||||
"cm_BkgDaemon");
|
"cm_BkgDaemon");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "cm_BkgDaemon thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -73,8 +73,8 @@ long cm_BufWrite(void *vscp, osi_hyper_t *offsetp, long length, long flags,
|
|||||||
cm_bulkIO_t biod; /* bulk IO descriptor */
|
cm_bulkIO_t biod; /* bulk IO descriptor */
|
||||||
int require_64bit_ops = 0;
|
int require_64bit_ops = 0;
|
||||||
|
|
||||||
osi_assert(userp != NULL);
|
osi_assertx(userp != NULL, "null cm_user_t");
|
||||||
osi_assert(scp != NULL);
|
osi_assertx(scp != NULL, "null cm_scache_t");
|
||||||
|
|
||||||
/* now, the buffer may or may not be filled with good data (buf_GetNew
|
/* now, the buffer may or may not be filled with good data (buf_GetNew
|
||||||
* drops lots of locks, and may indeed return a properly initialized
|
* drops lots of locks, and may indeed return a properly initialized
|
||||||
@ -205,7 +205,7 @@ long cm_BufWrite(void *vscp, osi_hyper_t *offsetp, long length, long flags,
|
|||||||
qdp = biod.bufListEndp;
|
qdp = biod.bufListEndp;
|
||||||
else
|
else
|
||||||
qdp = (osi_queueData_t *) osi_QPrev(&qdp->q);
|
qdp = (osi_queueData_t *) osi_QPrev(&qdp->q);
|
||||||
osi_assert(qdp != NULL);
|
osi_assertx(qdp != NULL, "null osi_queueData_t");
|
||||||
bufp = osi_GetQData(qdp);
|
bufp = osi_GetQData(qdp);
|
||||||
bufferp = bufp->datap;
|
bufferp = bufp->datap;
|
||||||
wbytes = nbytes;
|
wbytes = nbytes;
|
||||||
@ -1571,7 +1571,7 @@ long cm_GetBuffer(cm_scache_t *scp, cm_buf_t *bufp, int *cpffp, cm_user_t *userp
|
|||||||
* our check above for nbytes being less than
|
* our check above for nbytes being less than
|
||||||
* biod.length should ensure this.
|
* biod.length should ensure this.
|
||||||
*/
|
*/
|
||||||
osi_assert(bufferp != NULL);
|
osi_assertx(bufferp != NULL, "null cm_buf_t");
|
||||||
|
|
||||||
/* read rbytes of data */
|
/* read rbytes of data */
|
||||||
rbytes = (nbytes > cm_data.buf_blockSize? cm_data.buf_blockSize : nbytes);
|
rbytes = (nbytes > cm_data.buf_blockSize? cm_data.buf_blockSize : nbytes);
|
||||||
@ -1622,7 +1622,7 @@ long cm_GetBuffer(cm_scache_t *scp, cm_buf_t *bufp, int *cpffp, cm_user_t *userp
|
|||||||
* all of the rest of the pages.
|
* all of the rest of the pages.
|
||||||
*/
|
*/
|
||||||
/* bytes fetched */
|
/* bytes fetched */
|
||||||
osi_assert((bufferp - tbufp->datap) < LONG_MAX);
|
osi_assertx((bufferp - tbufp->datap) < LONG_MAX, "data >= LONG_MAX");
|
||||||
rbytes = (long) (bufferp - tbufp->datap);
|
rbytes = (long) (bufferp - tbufp->datap);
|
||||||
|
|
||||||
/* bytes left to zero */
|
/* bytes left to zero */
|
||||||
|
@ -156,12 +156,12 @@ void cm_InitFreelance() {
|
|||||||
/* Start the registry monitor */
|
/* Start the registry monitor */
|
||||||
phandle = thrd_Create(NULL, 65536, (ThreadFunc) cm_FreelanceChangeNotifier,
|
phandle = thrd_Create(NULL, 65536, (ThreadFunc) cm_FreelanceChangeNotifier,
|
||||||
NULL, 0, &lpid, "cm_FreelanceChangeNotifier");
|
NULL, 0, &lpid, "cm_FreelanceChangeNotifier");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "cm_FreelanceChangeNotifier thread create failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
|
|
||||||
phandle = thrd_Create(NULL, 65536, (ThreadFunc) cm_FreelanceSymlinkChangeNotifier,
|
phandle = thrd_Create(NULL, 65536, (ThreadFunc) cm_FreelanceSymlinkChangeNotifier,
|
||||||
NULL, 0, &lpid, "cm_FreelanceSymlinkChangeNotifier");
|
NULL, 0, &lpid, "cm_FreelanceSymlinkChangeNotifier");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "cm_FreelanceSymlinkChangeNotifier thread create failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -794,7 +794,7 @@ long cm_IoctlSetVolumeStatus(struct smb_ioctl *ioctlp, struct cm_user *userp)
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
cellp = cm_FindCellByID(scp->fid.cell);
|
cellp = cm_FindCellByID(scp->fid.cell);
|
||||||
osi_assert(cellp);
|
osi_assertx(cellp, "null cm_cell_t");
|
||||||
|
|
||||||
if (scp->flags & CM_SCACHEFLAG_RO) {
|
if (scp->flags & CM_SCACHEFLAG_RO) {
|
||||||
cm_ReleaseSCache(scp);
|
cm_ReleaseSCache(scp);
|
||||||
|
@ -147,8 +147,8 @@ long cm_RecycleSCache(cm_scache_t *scp, afs_int32 flags)
|
|||||||
buf_CleanDirtyBuffers(scp);
|
buf_CleanDirtyBuffers(scp);
|
||||||
} else {
|
} else {
|
||||||
/* look for things that shouldn't still be set */
|
/* look for things that shouldn't still be set */
|
||||||
osi_assert(scp->bufWritesp == NULL);
|
osi_assertx(scp->bufWritesp == NULL, "non-null cm_scache_t bufWritesp");
|
||||||
osi_assert(scp->bufReadsp == NULL);
|
osi_assertx(scp->bufReadsp == NULL, "non-null cm_scache_t bufReadsp");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -242,7 +242,8 @@ cm_scache_t *cm_GetNewSCache(void)
|
|||||||
scp;
|
scp;
|
||||||
scp = (cm_scache_t *) osi_QPrev(&scp->q))
|
scp = (cm_scache_t *) osi_QPrev(&scp->q))
|
||||||
{
|
{
|
||||||
osi_assert(scp >= cm_data.scacheBaseAddress && scp < (cm_scache_t *)cm_data.scacheHashTablep);
|
osi_assertx(scp >= cm_data.scacheBaseAddress && scp < (cm_scache_t *)cm_data.scacheHashTablep,
|
||||||
|
"invalid cm_scache_t address");
|
||||||
|
|
||||||
if (scp->refCount == 0) {
|
if (scp->refCount == 0) {
|
||||||
if (scp->flags & CM_SCACHEFLAG_DELETED) {
|
if (scp->flags & CM_SCACHEFLAG_DELETED) {
|
||||||
@ -311,7 +312,8 @@ cm_scache_t *cm_GetNewSCache(void)
|
|||||||
* quota or we have a leak and need to allocate a new one to avoid panicing.
|
* quota or we have a leak and need to allocate a new one to avoid panicing.
|
||||||
*/
|
*/
|
||||||
scp = cm_data.scacheBaseAddress + cm_data.currentSCaches;
|
scp = cm_data.scacheBaseAddress + cm_data.currentSCaches;
|
||||||
osi_assert(scp >= cm_data.scacheBaseAddress && scp < (cm_scache_t *)cm_data.scacheHashTablep);
|
osi_assertx(scp >= cm_data.scacheBaseAddress && scp < (cm_scache_t *)cm_data.scacheHashTablep,
|
||||||
|
"invalid cm_scache_t address");
|
||||||
memset(scp, 0, sizeof(cm_scache_t));
|
memset(scp, 0, sizeof(cm_scache_t));
|
||||||
scp->magic = CM_SCACHE_MAGIC;
|
scp->magic = CM_SCACHE_MAGIC;
|
||||||
lock_InitializeMutex(&scp->mx, "cm_scache_t mutex");
|
lock_InitializeMutex(&scp->mx, "cm_scache_t mutex");
|
||||||
@ -637,7 +639,7 @@ long cm_GetSCache(cm_fid_t *fidp, cm_scache_t **outScpp, cm_user_t *userp,
|
|||||||
|
|
||||||
hash = CM_SCACHE_HASH(fidp);
|
hash = CM_SCACHE_HASH(fidp);
|
||||||
|
|
||||||
osi_assert(fidp->cell != 0);
|
osi_assertx(fidp->cell != NULL, "null cm_cell_t");
|
||||||
|
|
||||||
if (fidp->cell== cm_data.rootFid.cell &&
|
if (fidp->cell== cm_data.rootFid.cell &&
|
||||||
fidp->volume==cm_data.rootFid.volume &&
|
fidp->volume==cm_data.rootFid.volume &&
|
||||||
@ -783,7 +785,7 @@ long cm_GetSCache(cm_fid_t *fidp, cm_scache_t **outScpp, cm_user_t *userp,
|
|||||||
osi_Log1(afsd_logp,"cm_GetSCache (3) outScpp 0x%p", scp);
|
osi_Log1(afsd_logp,"cm_GetSCache (3) outScpp 0x%p", scp);
|
||||||
#endif
|
#endif
|
||||||
cm_HoldSCacheNoLock(scp);
|
cm_HoldSCacheNoLock(scp);
|
||||||
osi_assert(scp->volp == volp);
|
osi_assertx(scp->volp == volp, "cm_scache_t volume has unexpected value");
|
||||||
cm_AdjustScacheLRU(scp);
|
cm_AdjustScacheLRU(scp);
|
||||||
lock_ReleaseWrite(&cm_scacheLock);
|
lock_ReleaseWrite(&cm_scacheLock);
|
||||||
if (volp)
|
if (volp)
|
||||||
@ -804,7 +806,7 @@ long cm_GetSCache(cm_fid_t *fidp, cm_scache_t **outScpp, cm_user_t *userp,
|
|||||||
}
|
}
|
||||||
osi_Log2(afsd_logp,"cm_GetNewSCache returns scp 0x%x flags 0x%x", scp, scp->flags);
|
osi_Log2(afsd_logp,"cm_GetNewSCache returns scp 0x%x flags 0x%x", scp, scp->flags);
|
||||||
|
|
||||||
osi_assert(!(scp->flags & CM_SCACHEFLAG_INHASH));
|
osi_assertx(!(scp->flags & CM_SCACHEFLAG_INHASH), "CM_SCACHEFLAG_INHASH set");
|
||||||
|
|
||||||
#if not_too_dangerous
|
#if not_too_dangerous
|
||||||
/* dropping the cm_scacheLock allows more than one thread
|
/* dropping the cm_scacheLock allows more than one thread
|
||||||
@ -929,7 +931,7 @@ int cm_SyncOpCheckContinue(cm_scache_t * scp, afs_int32 flags, cm_buf_t * bufp)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
osi_assert(w != NULL);
|
osi_assertx(w != NULL, "null cm_scache_waiter_t");
|
||||||
this_is_me = (w->threadId == thrd_Current());
|
this_is_me = (w->threadId == thrd_Current());
|
||||||
lock_ReleaseRead(&cm_scacheLock);
|
lock_ReleaseRead(&cm_scacheLock);
|
||||||
|
|
||||||
@ -1023,7 +1025,7 @@ long cm_SyncOp(cm_scache_t *scp, cm_buf_t *bufp, cm_user_t *userp, cm_req_t *req
|
|||||||
bufLocked = flags & CM_SCACHESYNC_BUFLOCKED;
|
bufLocked = flags & CM_SCACHESYNC_BUFLOCKED;
|
||||||
|
|
||||||
if (bufp)
|
if (bufp)
|
||||||
osi_assert(bufp->refCount > 0);
|
osi_assertx(bufp->refCount > 0, "cm_buf_t refCount 0");
|
||||||
|
|
||||||
|
|
||||||
/* Do the access check. Now we don't really do the access check
|
/* Do the access check. Now we don't really do the access check
|
||||||
@ -1215,7 +1217,7 @@ long cm_SyncOp(cm_scache_t *scp, cm_buf_t *bufp, cm_user_t *userp, cm_req_t *req
|
|||||||
|
|
||||||
if (rights) {
|
if (rights) {
|
||||||
/* can't check access rights without a callback */
|
/* can't check access rights without a callback */
|
||||||
osi_assert(flags & CM_SCACHESYNC_NEEDCALLBACK);
|
osi_assertx(flags & CM_SCACHESYNC_NEEDCALLBACK, "!CM_SCACHESYNC_NEEDCALLBACK");
|
||||||
|
|
||||||
if ((rights & PRSFS_WRITE) && (scp->flags & CM_SCACHEFLAG_RO))
|
if ((rights & PRSFS_WRITE) && (scp->flags & CM_SCACHEFLAG_RO))
|
||||||
return CM_ERROR_READONLY;
|
return CM_ERROR_READONLY;
|
||||||
@ -1315,7 +1317,7 @@ long cm_SyncOp(cm_scache_t *scp, cm_buf_t *bufp, cm_user_t *userp, cm_req_t *req
|
|||||||
if (bufp) {
|
if (bufp) {
|
||||||
for(qdp = scp->bufReadsp; qdp; qdp = (osi_queueData_t *) osi_QNext(&qdp->q)) {
|
for(qdp = scp->bufReadsp; qdp; qdp = (osi_queueData_t *) osi_QNext(&qdp->q)) {
|
||||||
tbufp = osi_GetQData(qdp);
|
tbufp = osi_GetQData(qdp);
|
||||||
osi_assert(tbufp != bufp);
|
osi_assertx(tbufp != bufp, "unexpected cm_buf_t value");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1334,7 +1336,7 @@ long cm_SyncOp(cm_scache_t *scp, cm_buf_t *bufp, cm_user_t *userp, cm_req_t *req
|
|||||||
if (bufp) {
|
if (bufp) {
|
||||||
for(qdp = scp->bufWritesp; qdp; qdp = (osi_queueData_t *) osi_QNext(&qdp->q)) {
|
for(qdp = scp->bufWritesp; qdp; qdp = (osi_queueData_t *) osi_QNext(&qdp->q)) {
|
||||||
tbufp = osi_GetQData(qdp);
|
tbufp = osi_GetQData(qdp);
|
||||||
osi_assert(tbufp != bufp);
|
osi_assertx(tbufp != bufp, "unexpected cm_buf_t value");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1437,7 +1439,7 @@ void cm_SyncOpDone(cm_scache_t *scp, cm_buf_t *bufp, afs_uint32 flags)
|
|||||||
|
|
||||||
if (flags & CM_SCACHESYNC_WRITE) {
|
if (flags & CM_SCACHESYNC_WRITE) {
|
||||||
if (bufp) {
|
if (bufp) {
|
||||||
osi_assert(bufp->cmFlags & CM_BUF_CMWRITING);
|
osi_assertx(bufp->cmFlags & CM_BUF_CMWRITING, "!CM_BUF_CMWRITING");
|
||||||
|
|
||||||
bufp->cmFlags &= ~CM_BUF_CMWRITING;
|
bufp->cmFlags &= ~CM_BUF_CMWRITING;
|
||||||
}
|
}
|
||||||
@ -1674,7 +1676,7 @@ void cm_HoldSCacheNoLockDbg(cm_scache_t *scp, char * file, long line)
|
|||||||
void cm_HoldSCacheNoLock(cm_scache_t *scp)
|
void cm_HoldSCacheNoLock(cm_scache_t *scp)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
osi_assert(scp != 0);
|
osi_assertx(scp != NULL, "null cm_scache_t");
|
||||||
scp->refCount++;
|
scp->refCount++;
|
||||||
#ifdef DEBUG_REFCOUNT
|
#ifdef DEBUG_REFCOUNT
|
||||||
osi_Log2(afsd_logp,"cm_HoldSCacheNoLock scp 0x%p ref %d",scp, scp->refCount);
|
osi_Log2(afsd_logp,"cm_HoldSCacheNoLock scp 0x%p ref %d",scp, scp->refCount);
|
||||||
@ -1688,7 +1690,7 @@ void cm_HoldSCacheDbg(cm_scache_t *scp, char * file, long line)
|
|||||||
void cm_HoldSCache(cm_scache_t *scp)
|
void cm_HoldSCache(cm_scache_t *scp)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
osi_assert(scp != 0);
|
osi_assertx(scp != NULL, "null cm_scache_t");
|
||||||
lock_ObtainWrite(&cm_scacheLock);
|
lock_ObtainWrite(&cm_scacheLock);
|
||||||
scp->refCount++;
|
scp->refCount++;
|
||||||
#ifdef DEBUG_REFCOUNT
|
#ifdef DEBUG_REFCOUNT
|
||||||
@ -1704,10 +1706,10 @@ void cm_ReleaseSCacheNoLockDbg(cm_scache_t *scp, char * file, long line)
|
|||||||
void cm_ReleaseSCacheNoLock(cm_scache_t *scp)
|
void cm_ReleaseSCacheNoLock(cm_scache_t *scp)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
osi_assert(scp != NULL);
|
osi_assertx(scp != NULL, "null cm_scache_t");
|
||||||
if (scp->refCount == 0)
|
if (scp->refCount == 0)
|
||||||
osi_Log1(afsd_logp,"cm_ReleaseSCacheNoLock about to panic scp 0x%x",scp);
|
osi_Log1(afsd_logp,"cm_ReleaseSCacheNoLock about to panic scp 0x%x",scp);
|
||||||
osi_assert(scp->refCount-- >= 0);
|
osi_assertx(scp->refCount-- >= 0, "cm_scache_t refCount 0");
|
||||||
#ifdef DEBUG_REFCOUNT
|
#ifdef DEBUG_REFCOUNT
|
||||||
osi_Log2(afsd_logp,"cm_ReleaseSCacheNoLock scp 0x%p ref %d",scp,scp->refCount);
|
osi_Log2(afsd_logp,"cm_ReleaseSCacheNoLock scp 0x%p ref %d",scp,scp->refCount);
|
||||||
afsi_log("%s:%d cm_ReleaseSCacheNoLock scp 0x%p ref %d", file, line, scp, scp->refCount);
|
afsi_log("%s:%d cm_ReleaseSCacheNoLock scp 0x%p ref %d", file, line, scp, scp->refCount);
|
||||||
@ -1720,11 +1722,11 @@ void cm_ReleaseSCacheDbg(cm_scache_t *scp, char * file, long line)
|
|||||||
void cm_ReleaseSCache(cm_scache_t *scp)
|
void cm_ReleaseSCache(cm_scache_t *scp)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
osi_assert(scp != NULL);
|
osi_assertx(scp != NULL, "null cm_scache_t");
|
||||||
lock_ObtainWrite(&cm_scacheLock);
|
lock_ObtainWrite(&cm_scacheLock);
|
||||||
if (scp->refCount == 0)
|
if (scp->refCount == 0)
|
||||||
osi_Log1(afsd_logp,"cm_ReleaseSCache about to panic scp 0x%x",scp);
|
osi_Log1(afsd_logp,"cm_ReleaseSCache about to panic scp 0x%x",scp);
|
||||||
osi_assert(scp->refCount != 0);
|
osi_assertx(scp->refCount != 0, "cm_scache_t refCount 0");
|
||||||
scp->refCount--;
|
scp->refCount--;
|
||||||
#ifdef DEBUG_REFCOUNT
|
#ifdef DEBUG_REFCOUNT
|
||||||
osi_Log2(afsd_logp,"cm_ReleaseSCache scp 0x%p ref %d",scp,scp->refCount);
|
osi_Log2(afsd_logp,"cm_ReleaseSCache scp 0x%p ref %d",scp,scp->refCount);
|
||||||
@ -1742,7 +1744,7 @@ int cm_FindFileType(cm_fid_t *fidp)
|
|||||||
|
|
||||||
hash = CM_SCACHE_HASH(fidp);
|
hash = CM_SCACHE_HASH(fidp);
|
||||||
|
|
||||||
osi_assert(fidp->cell != 0);
|
osi_assertx(fidp->cell != NULL, "null cm_cell_t");
|
||||||
|
|
||||||
lock_ObtainWrite(&cm_scacheLock);
|
lock_ObtainWrite(&cm_scacheLock);
|
||||||
for (scp=cm_data.scacheHashTablep[hash]; scp; scp=scp->nextp) {
|
for (scp=cm_data.scacheHashTablep[hash]; scp; scp=scp->nextp) {
|
||||||
|
@ -273,13 +273,13 @@ void cm_GetServerNoLock(cm_server_t *serverp)
|
|||||||
void cm_PutServer(cm_server_t *serverp)
|
void cm_PutServer(cm_server_t *serverp)
|
||||||
{
|
{
|
||||||
lock_ObtainWrite(&cm_serverLock);
|
lock_ObtainWrite(&cm_serverLock);
|
||||||
osi_assert(serverp->refCount-- > 0);
|
osi_assertx(serverp->refCount-- > 0, "cm_server_t refCount 0");
|
||||||
lock_ReleaseWrite(&cm_serverLock);
|
lock_ReleaseWrite(&cm_serverLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
void cm_PutServerNoLock(cm_server_t *serverp)
|
void cm_PutServerNoLock(cm_server_t *serverp)
|
||||||
{
|
{
|
||||||
osi_assert(serverp->refCount-- > 0);
|
osi_assertx(serverp->refCount-- > 0, "cm_server_t refCount 0");
|
||||||
}
|
}
|
||||||
|
|
||||||
void cm_SetServerNo64Bit(cm_server_t * serverp, int no64bit)
|
void cm_SetServerNo64Bit(cm_server_t * serverp, int no64bit)
|
||||||
@ -364,7 +364,7 @@ void cm_SetServerPrefs(cm_server_t * serverp)
|
|||||||
cm_server_t *cm_NewServer(struct sockaddr_in *socketp, int type, cm_cell_t *cellp) {
|
cm_server_t *cm_NewServer(struct sockaddr_in *socketp, int type, cm_cell_t *cellp) {
|
||||||
cm_server_t *tsp;
|
cm_server_t *tsp;
|
||||||
|
|
||||||
osi_assert(socketp->sin_family == AF_INET);
|
osi_assertx(socketp->sin_family == AF_INET, "unexpected socket family");
|
||||||
|
|
||||||
tsp = malloc(sizeof(*tsp));
|
tsp = malloc(sizeof(*tsp));
|
||||||
if (tsp) {
|
if (tsp) {
|
||||||
@ -409,7 +409,7 @@ cm_server_t *cm_FindServer(struct sockaddr_in *addrp, int type)
|
|||||||
{
|
{
|
||||||
cm_server_t *tsp;
|
cm_server_t *tsp;
|
||||||
|
|
||||||
osi_assert(addrp->sin_family == AF_INET);
|
osi_assertx(addrp->sin_family == AF_INET, "unexpected socket value");
|
||||||
|
|
||||||
lock_ObtainWrite(&cm_serverLock);
|
lock_ObtainWrite(&cm_serverLock);
|
||||||
for (tsp = cm_allServersp; tsp; tsp=tsp->allNextp) {
|
for (tsp = cm_allServersp; tsp; tsp=tsp->allNextp) {
|
||||||
|
@ -104,7 +104,7 @@ void cm_ReleaseUser(cm_user_t *userp)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
lock_ObtainWrite(&cm_userLock);
|
lock_ObtainWrite(&cm_userLock);
|
||||||
osi_assert(userp->refCount-- > 0);
|
osi_assertx(userp->refCount-- > 0, "cm_user_t refCount 0");
|
||||||
if (userp->refCount == 0) {
|
if (userp->refCount == 0) {
|
||||||
lock_FinalizeMutex(&userp->mx);
|
lock_FinalizeMutex(&userp->mx);
|
||||||
for (ucp = userp->cellInfop; ucp; ucp = ncp) {
|
for (ucp = userp->cellInfop; ucp; ucp = ncp) {
|
||||||
@ -135,7 +135,7 @@ void cm_HoldUserVCRef(cm_user_t *userp)
|
|||||||
void cm_ReleaseUserVCRef(cm_user_t *userp)
|
void cm_ReleaseUserVCRef(cm_user_t *userp)
|
||||||
{
|
{
|
||||||
lock_ObtainMutex(&userp->mx);
|
lock_ObtainMutex(&userp->mx);
|
||||||
osi_assert(userp->vcRefs-- > 0);
|
osi_assertx(userp->vcRefs-- > 0, "cm_user_t refCount 0");
|
||||||
lock_ReleaseMutex(&userp->mx);
|
lock_ReleaseMutex(&userp->mx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -335,7 +335,7 @@ long cm_CheckNTOpen(cm_scache_t *scp, unsigned int desiredAccess,
|
|||||||
long rights;
|
long rights;
|
||||||
long code;
|
long code;
|
||||||
|
|
||||||
osi_assert(ldpp != NULL);
|
osi_assertx(ldpp != NULL, "null cm_lock_data_t");
|
||||||
*ldpp = NULL;
|
*ldpp = NULL;
|
||||||
|
|
||||||
/* Always allow delete; the RPC will tell us if it's OK */
|
/* Always allow delete; the RPC will tell us if it's OK */
|
||||||
@ -2284,7 +2284,7 @@ cm_TryBulkStat(cm_scache_t *dscp, osi_hyper_t *offsetp, cm_user_t *userp,
|
|||||||
osi_Log1(afsd_logp, "cm_TryBulkStat dir 0x%p", dscp);
|
osi_Log1(afsd_logp, "cm_TryBulkStat dir 0x%p", dscp);
|
||||||
|
|
||||||
/* should be on a buffer boundary */
|
/* should be on a buffer boundary */
|
||||||
osi_assert((offsetp->LowPart & (cm_data.buf_blockSize - 1)) == 0);
|
osi_assertx((offsetp->LowPart & (cm_data.buf_blockSize - 1)) == 0, "invalid offset");
|
||||||
|
|
||||||
memset(&bb, 0, sizeof(bb));
|
memset(&bb, 0, sizeof(bb));
|
||||||
bb.bufOffset = *offsetp;
|
bb.bufOffset = *offsetp;
|
||||||
@ -3903,7 +3903,7 @@ static cm_file_lock_t * cm_GetFileLock(void) {
|
|||||||
osi_QRemove(&cm_freeFileLocks, &l->q);
|
osi_QRemove(&cm_freeFileLocks, &l->q);
|
||||||
} else {
|
} else {
|
||||||
l = malloc(sizeof(cm_file_lock_t));
|
l = malloc(sizeof(cm_file_lock_t));
|
||||||
osi_assert(l);
|
osi_assertx(l, "null cm_file_lock_t");
|
||||||
}
|
}
|
||||||
|
|
||||||
memset(l, 0, sizeof(cm_file_lock_t));
|
memset(l, 0, sizeof(cm_file_lock_t));
|
||||||
@ -4046,7 +4046,7 @@ long cm_LockCheckPerms(cm_scache_t * scp,
|
|||||||
rights |= PRSFS_WRITE | PRSFS_LOCK;
|
rights |= PRSFS_WRITE | PRSFS_LOCK;
|
||||||
else {
|
else {
|
||||||
/* hmmkay */
|
/* hmmkay */
|
||||||
osi_assert(FALSE);
|
osi_assertx(FALSE, "invalid lock type");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4290,7 +4290,7 @@ long cm_Lock(cm_scache_t *scp, unsigned char sLockType,
|
|||||||
newLock = Which;
|
newLock = Which;
|
||||||
|
|
||||||
/* am I sane? */
|
/* am I sane? */
|
||||||
osi_assert(newLock == LockRead);
|
osi_assertx(newLock == LockRead, "lock type not read");
|
||||||
|
|
||||||
code = cm_IntSetLock(scp, userp, newLock, reqp);
|
code = cm_IntSetLock(scp, userp, newLock, reqp);
|
||||||
}
|
}
|
||||||
@ -4506,7 +4506,7 @@ long cm_UnlockByKey(cm_scache_t * scp,
|
|||||||
fileLock->scp->fid.volume,
|
fileLock->scp->fid.volume,
|
||||||
fileLock->scp->fid.vnode,
|
fileLock->scp->fid.vnode,
|
||||||
fileLock->scp->fid.unique);
|
fileLock->scp->fid.unique);
|
||||||
osi_assert(FALSE);
|
osi_assertx(FALSE, "invalid fid value");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -4681,7 +4681,7 @@ long cm_Unlock(cm_scache_t *scp,
|
|||||||
fileLock->scp->fid.volume,
|
fileLock->scp->fid.volume,
|
||||||
fileLock->scp->fid.vnode,
|
fileLock->scp->fid.vnode,
|
||||||
fileLock->scp->fid.unique);
|
fileLock->scp->fid.unique);
|
||||||
osi_assert(FALSE);
|
osi_assertx(FALSE, "invalid fid value");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!IS_LOCK_DELETED(fileLock) &&
|
if (!IS_LOCK_DELETED(fileLock) &&
|
||||||
@ -4848,7 +4848,7 @@ static void cm_LockMarkSCacheLost(cm_scache_t * scp)
|
|||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
/* With the current code, we can't lose a lock on a RO scp */
|
/* With the current code, we can't lose a lock on a RO scp */
|
||||||
osi_assert(!(scp->flags & CM_SCACHEFLAG_RO));
|
osi_assertx(!(scp->flags & CM_SCACHEFLAG_RO), "CM_SCACHEFLAG_RO unexpected");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* cm_scacheLock needed because we are modifying fileLock->flags */
|
/* cm_scacheLock needed because we are modifying fileLock->flags */
|
||||||
@ -4909,10 +4909,10 @@ void cm_CheckLocks()
|
|||||||
|
|
||||||
/* Server locks must have been enabled for us to have
|
/* Server locks must have been enabled for us to have
|
||||||
received an active non-client-only lock. */
|
received an active non-client-only lock. */
|
||||||
osi_assert(cm_enableServerLocks);
|
osi_assertx(cm_enableServerLocks, "!cm_enableServerLocks");
|
||||||
|
|
||||||
scp = fileLock->scp;
|
scp = fileLock->scp;
|
||||||
osi_assert(scp != NULL);
|
osi_assertx(scp != NULL, "null cm_scache_t");
|
||||||
|
|
||||||
cm_HoldSCacheNoLock(scp);
|
cm_HoldSCacheNoLock(scp);
|
||||||
|
|
||||||
@ -4929,7 +4929,7 @@ void cm_CheckLocks()
|
|||||||
fileLock->scp->fid.volume,
|
fileLock->scp->fid.volume,
|
||||||
fileLock->scp->fid.vnode,
|
fileLock->scp->fid.vnode,
|
||||||
fileLock->scp->fid.unique);
|
fileLock->scp->fid.unique);
|
||||||
osi_assert(FALSE);
|
osi_assertx(FALSE, "invalid fid");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
/* Server locks are extended once per scp per refresh
|
/* Server locks are extended once per scp per refresh
|
||||||
@ -5135,7 +5135,7 @@ long cm_RetryLock(cm_file_lock_t *oldFileLock, int client_is_dead)
|
|||||||
|
|
||||||
scp = oldFileLock->scp;
|
scp = oldFileLock->scp;
|
||||||
|
|
||||||
osi_assert(scp != NULL);
|
osi_assertx(scp != NULL, "null cm_scache_t");
|
||||||
|
|
||||||
lock_ReleaseRead(&cm_scacheLock);
|
lock_ReleaseRead(&cm_scacheLock);
|
||||||
lock_ObtainMutex(&scp->mx);
|
lock_ObtainMutex(&scp->mx);
|
||||||
@ -5241,7 +5241,7 @@ long cm_RetryLock(cm_file_lock_t *oldFileLock, int client_is_dead)
|
|||||||
oldFileLock->flags |= CM_FILELOCK_FLAG_WAITLOCK;
|
oldFileLock->flags |= CM_FILELOCK_FLAG_WAITLOCK;
|
||||||
}
|
}
|
||||||
|
|
||||||
osi_assert(IS_LOCK_WAITLOCK(oldFileLock));
|
osi_assertx(IS_LOCK_WAITLOCK(oldFileLock), "!IS_LOCK_WAITLOCK");
|
||||||
|
|
||||||
if (force_client_lock ||
|
if (force_client_lock ||
|
||||||
!SERVERLOCKS_ENABLED(scp) ||
|
!SERVERLOCKS_ENABLED(scp) ||
|
||||||
@ -5313,7 +5313,7 @@ long cm_RetryLock(cm_file_lock_t *oldFileLock, int client_is_dead)
|
|||||||
|
|
||||||
if (scp->serverLock == LockRead) {
|
if (scp->serverLock == LockRead) {
|
||||||
|
|
||||||
osi_assert(newLock == LockWrite);
|
osi_assertx(newLock == LockWrite, "!LockWrite");
|
||||||
|
|
||||||
osi_Log0(afsd_logp, " Attempting to UPGRADE from LockRead to LockWrite");
|
osi_Log0(afsd_logp, " Attempting to UPGRADE from LockRead to LockWrite");
|
||||||
|
|
||||||
@ -5392,9 +5392,9 @@ long cm_RetryLock(cm_file_lock_t *oldFileLock, int client_is_dead)
|
|||||||
cm_key_t cm_GenerateKey(unsigned int session_id, unsigned long process_id, unsigned int file_id)
|
cm_key_t cm_GenerateKey(unsigned int session_id, unsigned long process_id, unsigned int file_id)
|
||||||
{
|
{
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
osi_assert((process_id & 0xffffffff) == process_id);
|
osi_assertx((process_id & 0xffffffff) == process_id, "unexpected process_id");
|
||||||
osi_assert((session_id & 0xffff) == session_id);
|
osi_assertx((session_id & 0xffff) == session_id, "unexpected session_id");
|
||||||
osi_assert((file_id & 0xffff) == file_id);
|
osi_assertx((file_id & 0xffff) == file_id, "unexpected file_id");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return
|
return
|
||||||
|
@ -452,7 +452,7 @@ long cm_UpdateVolume(struct cm_cell *cellp, cm_user_t *userp, cm_req_t *reqp,
|
|||||||
if ( !tsp->cellp )
|
if ( !tsp->cellp )
|
||||||
tsp->cellp = cellp;
|
tsp->cellp = cellp;
|
||||||
|
|
||||||
osi_assert(tsp != NULL);
|
osi_assertx(tsp != NULL, "null cm_server_t");
|
||||||
|
|
||||||
/* and add it to the list(s). */
|
/* and add it to the list(s). */
|
||||||
/*
|
/*
|
||||||
@ -601,7 +601,7 @@ long cm_GetVolumeByID(cm_cell_t *cellp, afs_uint32 volumeID, cm_user_t *userp,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SEARCH_ALL_VOLUMES
|
#ifdef SEARCH_ALL_VOLUMES
|
||||||
osi_assert(volp == volp2);
|
osi_assertx(volp == volp2, "unexpected cm_vol_t");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
lock_ReleaseRead(&cm_volumeLock);
|
lock_ReleaseRead(&cm_volumeLock);
|
||||||
@ -686,7 +686,7 @@ long cm_GetVolumeByName(struct cm_cell *cellp, char *volumeNamep,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SEARCH_ALL_VOLUMES
|
#ifdef SEARCH_ALL_VOLUMES
|
||||||
osi_assert(volp2 == volp);
|
osi_assertx(volp2 == volp, "unexpected cm_vol_t");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!volp && (flags & CM_GETVOL_FLAG_CREATE)) {
|
if (!volp && (flags & CM_GETVOL_FLAG_CREATE)) {
|
||||||
@ -852,7 +852,7 @@ void cm_ForceUpdateVolume(cm_fid_t *fidp, cm_user_t *userp, cm_req_t *reqp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef SEARCH_ALL_VOLUMES
|
#ifdef SEARCH_ALL_VOLUMES
|
||||||
osi_assert(volp == volp2);
|
osi_assertx(volp == volp2, "unexpected cm_vol_t");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
lock_ReleaseRead(&cm_volumeLock);
|
lock_ReleaseRead(&cm_volumeLock);
|
||||||
@ -913,7 +913,7 @@ cm_serverRef_t **cm_GetVolServers(cm_volume_t *volp, afs_uint32 volume)
|
|||||||
void cm_PutVolume(cm_volume_t *volp)
|
void cm_PutVolume(cm_volume_t *volp)
|
||||||
{
|
{
|
||||||
lock_ObtainWrite(&cm_volumeLock);
|
lock_ObtainWrite(&cm_volumeLock);
|
||||||
osi_assert(volp->refCount-- > 0);
|
osi_assertx(volp->refCount-- > 0, "cm_volume_t refCount 0");
|
||||||
lock_ReleaseWrite(&cm_volumeLock);
|
lock_ReleaseWrite(&cm_volumeLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -952,7 +952,7 @@ void cm_RefreshVolumes(void)
|
|||||||
lock_ReleaseMutex(&volp->mx);
|
lock_ReleaseMutex(&volp->mx);
|
||||||
|
|
||||||
lock_ObtainWrite(&cm_volumeLock);
|
lock_ObtainWrite(&cm_volumeLock);
|
||||||
osi_assert(volp->refCount-- > 0);
|
osi_assertx(volp->refCount-- > 0, "cm_volume_t refCount 0");
|
||||||
}
|
}
|
||||||
lock_ReleaseWrite(&cm_volumeLock);
|
lock_ReleaseWrite(&cm_volumeLock);
|
||||||
|
|
||||||
@ -1108,7 +1108,7 @@ void cm_CheckOfflineVolumes(void)
|
|||||||
cm_CheckOfflineVolume(volp, 0);
|
cm_CheckOfflineVolume(volp, 0);
|
||||||
|
|
||||||
lock_ObtainWrite(&cm_volumeLock);
|
lock_ObtainWrite(&cm_volumeLock);
|
||||||
osi_assert(volp->refCount-- > 0);
|
osi_assertx(volp->refCount-- > 0, "cm_volume_t refCount 0");
|
||||||
}
|
}
|
||||||
lock_ReleaseWrite(&cm_volumeLock);
|
lock_ReleaseWrite(&cm_volumeLock);
|
||||||
}
|
}
|
||||||
@ -1201,7 +1201,7 @@ void cm_ChangeRankVolume(cm_server_t *tsp)
|
|||||||
|
|
||||||
lock_ReleaseMutex(&volp->mx);
|
lock_ReleaseMutex(&volp->mx);
|
||||||
lock_ObtainWrite(&cm_volumeLock);
|
lock_ObtainWrite(&cm_volumeLock);
|
||||||
osi_assert(volp->refCount-- > 0);
|
osi_assertx(volp->refCount-- > 0, "cm_volume_t refCount 0");
|
||||||
}
|
}
|
||||||
lock_ReleaseWrite(&cm_volumeLock);
|
lock_ReleaseWrite(&cm_volumeLock);
|
||||||
}
|
}
|
||||||
|
@ -791,7 +791,7 @@ void smb_DosUTimeFromUnixTime(afs_uint32 *dosUTimep, time_t unixTime)
|
|||||||
{
|
{
|
||||||
time_t diff_t = unixTime - smb_localZero;
|
time_t diff_t = unixTime - smb_localZero;
|
||||||
#if defined(DEBUG) && !defined(_USE_32BIT_TIME_T)
|
#if defined(DEBUG) && !defined(_USE_32BIT_TIME_T)
|
||||||
osi_assert(diff_t < _UI32_MAX);
|
osi_assertx(diff_t < _UI32_MAX, "time_t > _UI32_MAX");
|
||||||
#endif
|
#endif
|
||||||
*dosUTimep = (afs_uint32)diff_t;
|
*dosUTimep = (afs_uint32)diff_t;
|
||||||
}
|
}
|
||||||
@ -855,7 +855,7 @@ smb_vc_t *smb_FindVC(unsigned short lsn, int flags, int lana)
|
|||||||
if (nts != STATUS_SUCCESS)
|
if (nts != STATUS_SUCCESS)
|
||||||
osi_Log4(smb_logp,"MsV1_0Lm20ChallengeRequest failure: nts 0x%x ntsEx 0x%x respSize is %u needs %u",
|
osi_Log4(smb_logp,"MsV1_0Lm20ChallengeRequest failure: nts 0x%x ntsEx 0x%x respSize is %u needs %u",
|
||||||
nts, ntsEx, sizeof(lsaReq), lsaRespSize);
|
nts, ntsEx, sizeof(lsaReq), lsaRespSize);
|
||||||
osi_assert(nts == STATUS_SUCCESS); /* this had better work! */
|
osi_assertx(nts == STATUS_SUCCESS, "LsaCallAuthenticationPackage failed"); /* this had better work! */
|
||||||
|
|
||||||
memcpy(vcp->encKey, lsaResp->ChallengeToClient, MSV1_0_CHALLENGE_LENGTH);
|
memcpy(vcp->encKey, lsaResp->ChallengeToClient, MSV1_0_CHALLENGE_LENGTH);
|
||||||
LsaFreeReturnBuffer(lsaResp);
|
LsaFreeReturnBuffer(lsaResp);
|
||||||
@ -1101,14 +1101,14 @@ void smb_ReleaseTID(smb_tid_t *tidp)
|
|||||||
|
|
||||||
userp = NULL;
|
userp = NULL;
|
||||||
lock_ObtainWrite(&smb_rctLock);
|
lock_ObtainWrite(&smb_rctLock);
|
||||||
osi_assert(tidp->refCount-- > 0);
|
osi_assertx(tidp->refCount-- > 0, "smb_tid_t refCount 0");
|
||||||
if (tidp->refCount == 0 && (tidp->delete)) {
|
if (tidp->refCount == 0 && (tidp->delete)) {
|
||||||
ltpp = &tidp->vcp->tidsp;
|
ltpp = &tidp->vcp->tidsp;
|
||||||
for(tp = *ltpp; tp; ltpp = &tp->nextp, tp = *ltpp) {
|
for(tp = *ltpp; tp; ltpp = &tp->nextp, tp = *ltpp) {
|
||||||
if (tp == tidp)
|
if (tp == tidp)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
osi_assert(tp != NULL);
|
osi_assertx(tp != NULL, "null smb_tid_t");
|
||||||
*ltpp = tp->nextp;
|
*ltpp = tp->nextp;
|
||||||
lock_FinalizeMutex(&tidp->mx);
|
lock_FinalizeMutex(&tidp->mx);
|
||||||
userp = tidp->userp; /* remember to drop ref later */
|
userp = tidp->userp; /* remember to drop ref later */
|
||||||
@ -1210,7 +1210,7 @@ void smb_ReleaseUsername(smb_username_t *unp)
|
|||||||
time_t now = osi_Time();
|
time_t now = osi_Time();
|
||||||
|
|
||||||
lock_ObtainWrite(&smb_rctLock);
|
lock_ObtainWrite(&smb_rctLock);
|
||||||
osi_assert(unp->refCount-- > 0);
|
osi_assertx(unp->refCount-- > 0, "smb_username_t refCount 0");
|
||||||
if (unp->refCount == 0 && !(unp->flags & SMB_USERNAMEFLAG_AFSLOGON) &&
|
if (unp->refCount == 0 && !(unp->flags & SMB_USERNAMEFLAG_AFSLOGON) &&
|
||||||
(unp->flags & SMB_USERNAMEFLAG_LOGOFF)) {
|
(unp->flags & SMB_USERNAMEFLAG_LOGOFF)) {
|
||||||
lupp = &usernamesp;
|
lupp = &usernamesp;
|
||||||
@ -1218,7 +1218,7 @@ void smb_ReleaseUsername(smb_username_t *unp)
|
|||||||
if (up == unp)
|
if (up == unp)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
osi_assert(up != NULL);
|
osi_assertx(up != NULL, "null smb_username_t");
|
||||||
*lupp = up->nextp;
|
*lupp = up->nextp;
|
||||||
up->nextp = NULL; /* do not remove this */
|
up->nextp = NULL; /* do not remove this */
|
||||||
lock_FinalizeMutex(&unp->mx);
|
lock_FinalizeMutex(&unp->mx);
|
||||||
@ -1246,14 +1246,14 @@ void smb_ReleaseUID(smb_user_t *uidp)
|
|||||||
smb_username_t *unp = NULL;
|
smb_username_t *unp = NULL;
|
||||||
|
|
||||||
lock_ObtainWrite(&smb_rctLock);
|
lock_ObtainWrite(&smb_rctLock);
|
||||||
osi_assert(uidp->refCount-- > 0);
|
osi_assertx(uidp->refCount-- > 0, "smb_user_t refCount 0");
|
||||||
if (uidp->refCount == 0) {
|
if (uidp->refCount == 0) {
|
||||||
lupp = &uidp->vcp->usersp;
|
lupp = &uidp->vcp->usersp;
|
||||||
for(up = *lupp; up; lupp = &up->nextp, up = *lupp) {
|
for(up = *lupp; up; lupp = &up->nextp, up = *lupp) {
|
||||||
if (up == uidp)
|
if (up == uidp)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
osi_assert(up != NULL);
|
osi_assertx(up != NULL, "null smb_user_t");
|
||||||
*lupp = up->nextp;
|
*lupp = up->nextp;
|
||||||
lock_FinalizeMutex(&uidp->mx);
|
lock_FinalizeMutex(&uidp->mx);
|
||||||
unp = uidp->unp;
|
unp = uidp->unp;
|
||||||
@ -1470,7 +1470,7 @@ void smb_ReleaseFID(smb_fid_t *fidp)
|
|||||||
|
|
||||||
lock_ObtainMutex(&fidp->mx);
|
lock_ObtainMutex(&fidp->mx);
|
||||||
lock_ObtainWrite(&smb_rctLock);
|
lock_ObtainWrite(&smb_rctLock);
|
||||||
osi_assert(fidp->refCount-- > 0);
|
osi_assertx(fidp->refCount-- > 0, "smb_fid_t refCount 0");
|
||||||
if (fidp->refCount == 0 && (fidp->delete)) {
|
if (fidp->refCount == 0 && (fidp->delete)) {
|
||||||
vcp = fidp->vcp;
|
vcp = fidp->vcp;
|
||||||
fidp->vcp = NULL;
|
fidp->vcp = NULL;
|
||||||
@ -1892,7 +1892,7 @@ void smb_ReleaseDirSearchNoLock(smb_dirSearch_t *dsp)
|
|||||||
cm_scache_t *scp = NULL;
|
cm_scache_t *scp = NULL;
|
||||||
|
|
||||||
lock_ObtainMutex(&dsp->mx);
|
lock_ObtainMutex(&dsp->mx);
|
||||||
osi_assert(dsp->refCount-- > 0);
|
osi_assertx(dsp->refCount-- > 0, "cm_scache_t refCount 0");
|
||||||
if (dsp->refCount == 0 && (dsp->flags & SMB_DIRSEARCH_DELETE)) {
|
if (dsp->refCount == 0 && (dsp->flags & SMB_DIRSEARCH_DELETE)) {
|
||||||
if (&dsp->q == (osi_queue_t *) smb_lastDirSearchp)
|
if (&dsp->q == (osi_queue_t *) smb_lastDirSearchp)
|
||||||
smb_lastDirSearchp = (smb_dirSearch_t *) osi_QPrev(&smb_lastDirSearchp->q);
|
smb_lastDirSearchp = (smb_dirSearch_t *) osi_QPrev(&smb_lastDirSearchp->q);
|
||||||
@ -2068,7 +2068,7 @@ static smb_packet_t *GetPacket(void)
|
|||||||
tbp->spacep = NULL;
|
tbp->spacep = NULL;
|
||||||
|
|
||||||
}
|
}
|
||||||
osi_assert(tbp->magic == SMB_PACKETMAGIC);
|
osi_assertx(tbp->magic == SMB_PACKETMAGIC, "invalid smb_packet_t magic");
|
||||||
|
|
||||||
return tbp;
|
return tbp;
|
||||||
}
|
}
|
||||||
@ -2099,7 +2099,7 @@ static NCB *GetNCB(void)
|
|||||||
tbp->magic = SMB_NCBMAGIC;
|
tbp->magic = SMB_NCBMAGIC;
|
||||||
}
|
}
|
||||||
|
|
||||||
osi_assert(tbp->magic == SMB_NCBMAGIC);
|
osi_assertx(tbp->magic == SMB_NCBMAGIC, "invalid smb_packet_t magic");
|
||||||
|
|
||||||
memset(&tbp->ncb, 0, sizeof(NCB));
|
memset(&tbp->ncb, 0, sizeof(NCB));
|
||||||
ncbp = &tbp->ncb;
|
ncbp = &tbp->ncb;
|
||||||
@ -2109,7 +2109,7 @@ static NCB *GetNCB(void)
|
|||||||
void smb_FreePacket(smb_packet_t *tbp)
|
void smb_FreePacket(smb_packet_t *tbp)
|
||||||
{
|
{
|
||||||
smb_vc_t * vcp = NULL;
|
smb_vc_t * vcp = NULL;
|
||||||
osi_assert(tbp->magic == SMB_PACKETMAGIC);
|
osi_assertx(tbp->magic == SMB_PACKETMAGIC, "invalid smb_packet_t magic");
|
||||||
|
|
||||||
lock_ObtainWrite(&smb_globalLock);
|
lock_ObtainWrite(&smb_globalLock);
|
||||||
tbp->nextp = smb_packetFreeListp;
|
tbp->nextp = smb_packetFreeListp;
|
||||||
@ -2137,7 +2137,7 @@ static void FreeNCB(NCB *bufferp)
|
|||||||
smb_ncb_t *tbp;
|
smb_ncb_t *tbp;
|
||||||
|
|
||||||
tbp = (smb_ncb_t *) bufferp;
|
tbp = (smb_ncb_t *) bufferp;
|
||||||
osi_assert(tbp->magic == SMB_NCBMAGIC);
|
osi_assertx(tbp->magic == SMB_NCBMAGIC, "invalid smb_packet_t magic");
|
||||||
|
|
||||||
lock_ObtainWrite(&smb_globalLock);
|
lock_ObtainWrite(&smb_globalLock);
|
||||||
tbp->nextp = smb_ncbFreeListp;
|
tbp->nextp = smb_ncbFreeListp;
|
||||||
@ -3397,7 +3397,7 @@ void smb_WaitingLocksDaemon()
|
|||||||
if (wl->state == SMB_WAITINGLOCKSTATE_DONE)
|
if (wl->state == SMB_WAITINGLOCKSTATE_DONE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
osi_assert(wl->state != SMB_WAITINGLOCKSTATE_ERROR);
|
osi_assertx(wl->state != SMB_WAITINGLOCKSTATE_ERROR, "!SMB_WAITINGLOCKSTATE_ERROR");
|
||||||
|
|
||||||
/* wl->state is either _DONE or _WAITING. _ERROR
|
/* wl->state is either _DONE or _WAITING. _ERROR
|
||||||
would no longer be on the queue. */
|
would no longer be on the queue. */
|
||||||
@ -3704,11 +3704,11 @@ long smb_ReceiveCoreSearchVolume(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t
|
|||||||
/* pull pathname and stat block out of request */
|
/* pull pathname and stat block out of request */
|
||||||
tp = smb_GetSMBData(inp, NULL);
|
tp = smb_GetSMBData(inp, NULL);
|
||||||
pathp = smb_ParseASCIIBlock(tp, (char **) &tp);
|
pathp = smb_ParseASCIIBlock(tp, (char **) &tp);
|
||||||
osi_assert(pathp != NULL);
|
osi_assertx(pathp != NULL, "null path");
|
||||||
if (smb_StoreAnsiFilenames)
|
if (smb_StoreAnsiFilenames)
|
||||||
OemToChar(pathp,pathp);
|
OemToChar(pathp,pathp);
|
||||||
statBlockp = smb_ParseVblBlock(tp, (char **) &tp, &statLen);
|
statBlockp = smb_ParseVblBlock(tp, (char **) &tp, &statLen);
|
||||||
osi_assert(statBlockp != NULL);
|
osi_assertx(statBlockp != NULL, "null statBlock");
|
||||||
if (statLen == 0) {
|
if (statLen == 0) {
|
||||||
statBlockp = initStatBlock;
|
statBlockp = initStatBlock;
|
||||||
statBlockp[0] = 8;
|
statBlockp[0] = 8;
|
||||||
@ -4368,7 +4368,7 @@ long smb_ReceiveCoreSearchDir(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *ou
|
|||||||
* Deduct for them and fill in the length field.
|
* Deduct for them and fill in the length field.
|
||||||
*/
|
*/
|
||||||
temp -= 3; /* deduct vbl block info */
|
temp -= 3; /* deduct vbl block info */
|
||||||
osi_assert(temp == (43 * returnedNames));
|
osi_assertx(temp == (43 * returnedNames), "unexpected data length");
|
||||||
origOp[1] = (char)(temp & 0xff);
|
origOp[1] = (char)(temp & 0xff);
|
||||||
origOp[2] = (char)((temp>>8) & 0xff);
|
origOp[2] = (char)((temp>>8) & 0xff);
|
||||||
if (returnedNames == 0)
|
if (returnedNames == 0)
|
||||||
@ -4864,7 +4864,7 @@ long smb_ReceiveCoreOpen(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
}
|
}
|
||||||
|
|
||||||
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
||||||
osi_assert(fidp);
|
osi_assertx(fidp, "null smb_fid_t");
|
||||||
|
|
||||||
/* save a pointer to the vnode */
|
/* save a pointer to the vnode */
|
||||||
fidp->scp = scp;
|
fidp->scp = scp;
|
||||||
@ -5922,8 +5922,8 @@ long smb_CloseFID(smb_vc_t *vcp, smb_fid_t *fidp, cm_user_t *userp,
|
|||||||
fidp->NTopen_pathp = NULL;
|
fidp->NTopen_pathp = NULL;
|
||||||
fidp->flags &= ~SMB_FID_NTOPEN;
|
fidp->flags &= ~SMB_FID_NTOPEN;
|
||||||
} else {
|
} else {
|
||||||
osi_assert(fidp->NTopen_dscp == NULL);
|
osi_assertx(fidp->NTopen_dscp == NULL, "null NTopen_dsc");
|
||||||
osi_assert(fidp->NTopen_pathp == NULL);
|
osi_assertx(fidp->NTopen_pathp == NULL, "null NTopen_path");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fidp->NTopen_wholepathp) {
|
if (fidp->NTopen_wholepathp) {
|
||||||
@ -7158,7 +7158,7 @@ long smb_ReceiveCoreCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
|
|
||||||
/* now all we have to do is open the file itself */
|
/* now all we have to do is open the file itself */
|
||||||
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
||||||
osi_assert(fidp);
|
osi_assertx(fidp, "null smb_fid_t");
|
||||||
|
|
||||||
cm_HoldUser(userp);
|
cm_HoldUser(userp);
|
||||||
|
|
||||||
@ -7561,7 +7561,7 @@ void smb_ClientWaiter(void *parmp)
|
|||||||
{
|
{
|
||||||
/* this is fatal - log as much as possible */
|
/* this is fatal - log as much as possible */
|
||||||
osi_Log1(smb_logp, "Fatal: NCBevents idx [ %d ] out of range.\n", idx);
|
osi_Log1(smb_logp, "Fatal: NCBevents idx [ %d ] out of range.\n", idx);
|
||||||
osi_assert(0);
|
osi_assertx(0, "invalid index");
|
||||||
}
|
}
|
||||||
|
|
||||||
thrd_ResetEvent(NCBevents[idx]);
|
thrd_ResetEvent(NCBevents[idx]);
|
||||||
@ -7615,7 +7615,7 @@ void smb_ServerWaiter(void *parmp)
|
|||||||
{
|
{
|
||||||
/* this is fatal - log as much as possible */
|
/* this is fatal - log as much as possible */
|
||||||
osi_Log1(smb_logp, "Fatal: session idx [ %d ] out of range.\n", idx_session);
|
osi_Log1(smb_logp, "Fatal: session idx [ %d ] out of range.\n", idx_session);
|
||||||
osi_assert(0);
|
osi_assertx(0, "invalid index");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Get an NCB */
|
/* Get an NCB */
|
||||||
@ -7659,7 +7659,7 @@ void smb_ServerWaiter(void *parmp)
|
|||||||
{
|
{
|
||||||
/* this is fatal - log as much as possible */
|
/* this is fatal - log as much as possible */
|
||||||
osi_Log1(smb_logp, "Fatal: idx_NCB [ %d ] out of range.\n", idx_NCB);
|
osi_Log1(smb_logp, "Fatal: idx_NCB [ %d ] out of range.\n", idx_NCB);
|
||||||
osi_assert(0);
|
osi_assertx(0, "invalid index");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Link them together */
|
/* Link them together */
|
||||||
@ -7756,7 +7756,7 @@ void smb_Server(VOID *parmp)
|
|||||||
{
|
{
|
||||||
/* this is fatal - log as much as possible */
|
/* this is fatal - log as much as possible */
|
||||||
osi_Log1(smb_logp, "Fatal: idx_NCB %d out of range.\n", idx_NCB);
|
osi_Log1(smb_logp, "Fatal: idx_NCB %d out of range.\n", idx_NCB);
|
||||||
osi_assert(0);
|
osi_assertx(0, "invalid index");
|
||||||
}
|
}
|
||||||
|
|
||||||
ncbp = NCBs[idx_NCB];
|
ncbp = NCBs[idx_NCB];
|
||||||
@ -7986,7 +7986,7 @@ void InitNCBslot(int idx)
|
|||||||
int i;
|
int i;
|
||||||
char eventName[MAX_PATH];
|
char eventName[MAX_PATH];
|
||||||
|
|
||||||
osi_assert( idx < (sizeof(NCBs) / sizeof(NCBs[0])) );
|
osi_assertx( idx < (sizeof(NCBs) / sizeof(NCBs[0])), "invalid index" );
|
||||||
|
|
||||||
NCBs[idx] = GetNCB();
|
NCBs[idx] = GetNCB();
|
||||||
sprintf(eventName,"NCBavails[%d]", idx);
|
sprintf(eventName,"NCBavails[%d]", idx);
|
||||||
@ -8238,8 +8238,8 @@ void smb_Listener(void *parmp)
|
|||||||
* we should probably want to wait for a session to be freed in case
|
* we should probably want to wait for a session to be freed in case
|
||||||
* we run out.
|
* we run out.
|
||||||
*/
|
*/
|
||||||
osi_assert(session < SESSION_MAX - 1);
|
osi_assertx(session < SESSION_MAX - 1, "invalid session");
|
||||||
osi_assert(numNCBs < NCB_MAX - 1); /* if we pass this test we can allocate one more */
|
osi_assertx(numNCBs < NCB_MAX - 1, "invalid numNCBs"); /* if we pass this test we can allocate one more */
|
||||||
|
|
||||||
lock_ObtainMutex(&vcp->mx);
|
lock_ObtainMutex(&vcp->mx);
|
||||||
vcp->session = session;
|
vcp->session = session;
|
||||||
@ -8433,7 +8433,7 @@ int smb_NetbiosInit(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
osi_assert(lana_list.length >= 0);
|
osi_assertx(lana_list.length >= 0, "empty lana list");
|
||||||
if (!lana_found) {
|
if (!lana_found) {
|
||||||
afsi_log("No valid LANA numbers found!");
|
afsi_log("No valid LANA numbers found!");
|
||||||
lana_list.length = 0;
|
lana_list.length = 0;
|
||||||
@ -8473,7 +8473,7 @@ void smb_StartListeners()
|
|||||||
continue;
|
continue;
|
||||||
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Listener,
|
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Listener,
|
||||||
(void*)lana_list.lana[i], 0, &lpid, "smb_Listener");
|
(void*)lana_list.lana[i], 0, &lpid, "smb_Listener");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "smb_Listener thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -8885,29 +8885,29 @@ void smb_Init(osi_log_t *logp, int useV3,
|
|||||||
|
|
||||||
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_ClientWaiter,
|
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_ClientWaiter,
|
||||||
NULL, 0, &lpid, "smb_ClientWaiter");
|
NULL, 0, &lpid, "smb_ClientWaiter");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, , "smb_ClientWaiter thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
|
|
||||||
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_ServerWaiter,
|
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_ServerWaiter,
|
||||||
NULL, 0, &lpid, "smb_ServerWaiter");
|
NULL, 0, &lpid, "smb_ServerWaiter");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "smb_ServerWaiter thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
|
|
||||||
for (i=0; i<smb_NumServerThreads; i++) {
|
for (i=0; i<smb_NumServerThreads; i++) {
|
||||||
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Server,
|
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Server,
|
||||||
(void *) i, 0, &lpid, "smb_Server");
|
(void *) i, 0, &lpid, "smb_Server");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "smb_Server thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
}
|
}
|
||||||
|
|
||||||
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Daemon,
|
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_Daemon,
|
||||||
NULL, 0, &lpid, "smb_Daemon");
|
NULL, 0, &lpid, "smb_Daemon");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "smb_Daemon thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
|
|
||||||
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_WaitingLocksDaemon,
|
phandle = thrd_Create(NULL, 65536, (ThreadFunc) smb_WaitingLocksDaemon,
|
||||||
NULL, 0, &lpid, "smb_WaitingLocksDaemon");
|
NULL, 0, &lpid, "smb_WaitingLocksDaemon");
|
||||||
osi_assert(phandle != NULL);
|
osi_assertx(phandle != NULL, "smb_WaitingLocksDaemon thread creation failure");
|
||||||
thrd_CloseHandle(phandle);
|
thrd_CloseHandle(phandle);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
@ -2297,13 +2297,13 @@ long smb_ReceiveTran2Open(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op)
|
|||||||
/* don't create if not found */
|
/* don't create if not found */
|
||||||
if (dscp)
|
if (dscp)
|
||||||
cm_ReleaseSCache(dscp);
|
cm_ReleaseSCache(dscp);
|
||||||
osi_assert(scp == NULL);
|
osi_assertx(scp == NULL, "null cm_scache_t");
|
||||||
cm_ReleaseUser(userp);
|
cm_ReleaseUser(userp);
|
||||||
smb_FreeTran2Packet(outp);
|
smb_FreeTran2Packet(outp);
|
||||||
return CM_ERROR_NOSUCHFILE;
|
return CM_ERROR_NOSUCHFILE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
osi_assert(dscp != NULL && scp == NULL);
|
osi_assertx(dscp != NULL && scp == NULL, "null dsc || non-null sc");
|
||||||
openAction = 2; /* created file */
|
openAction = 2; /* created file */
|
||||||
setAttr.mask = CM_ATTRMASK_CLIENTMODTIME;
|
setAttr.mask = CM_ATTRMASK_CLIENTMODTIME;
|
||||||
smb_UnixTimeFromSearchTime(&setAttr.clientModTime, dosTime);
|
smb_UnixTimeFromSearchTime(&setAttr.clientModTime, dosTime);
|
||||||
@ -2376,7 +2376,7 @@ long smb_ReceiveTran2Open(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op)
|
|||||||
|
|
||||||
/* now all we have to do is open the file itself */
|
/* now all we have to do is open the file itself */
|
||||||
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
||||||
osi_assert(fidp);
|
osi_assertx(fidp, "null smb_fid_t");
|
||||||
|
|
||||||
cm_HoldUser(userp);
|
cm_HoldUser(userp);
|
||||||
lock_ObtainMutex(&fidp->mx);
|
lock_ObtainMutex(&fidp->mx);
|
||||||
@ -4143,7 +4143,7 @@ long smb_T2SearchDirSingle(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t *op
|
|||||||
cm_InitReq(&req);
|
cm_InitReq(&req);
|
||||||
|
|
||||||
eos = 0;
|
eos = 0;
|
||||||
osi_assert(p->opcode == 1);
|
osi_assertx(p->opcode == 1, "invalid opcode");
|
||||||
|
|
||||||
/* find first; obtain basic parameters from request */
|
/* find first; obtain basic parameters from request */
|
||||||
|
|
||||||
@ -4606,7 +4606,7 @@ long smb_ReceiveTran2SearchDir(smb_vc_t *vcp, smb_tran2Packet_t *p, smb_packet_t
|
|||||||
strcpy(dsp->mask, maskp); /* and save mask */
|
strcpy(dsp->mask, maskp); /* and save mask */
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
osi_assert(p->opcode == 2);
|
osi_assertx(p->opcode == 2, "invalid opcode");
|
||||||
/* find next; obtain basic parameters from request or open dir file */
|
/* find next; obtain basic parameters from request or open dir file */
|
||||||
dsp = smb_FindDirSearch(p->parmsp[0]);
|
dsp = smb_FindDirSearch(p->parmsp[0]);
|
||||||
maxCount = p->parmsp[1];
|
maxCount = p->parmsp[1];
|
||||||
@ -5471,7 +5471,7 @@ long smb_ReceiveV3OpenX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
return CM_ERROR_NOSUCHFILE;
|
return CM_ERROR_NOSUCHFILE;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
osi_assert(dscp != NULL);
|
osi_assertx(dscp != NULL, "null cm_scache_t");
|
||||||
osi_Log1(smb_logp, "smb_ReceiveV3OpenX creating file %s",
|
osi_Log1(smb_logp, "smb_ReceiveV3OpenX creating file %s",
|
||||||
osi_LogSaveString(smb_logp, lastNamep));
|
osi_LogSaveString(smb_logp, lastNamep));
|
||||||
openAction = 2; /* created file */
|
openAction = 2; /* created file */
|
||||||
@ -5526,7 +5526,7 @@ long smb_ReceiveV3OpenX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
|
|
||||||
/* now all we have to do is open the file itself */
|
/* now all we have to do is open the file itself */
|
||||||
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
||||||
osi_assert(fidp);
|
osi_assertx(fidp, "null smb_fid_t");
|
||||||
|
|
||||||
cm_HoldUser(userp);
|
cm_HoldUser(userp);
|
||||||
lock_ObtainMutex(&fidp->mx);
|
lock_ObtainMutex(&fidp->mx);
|
||||||
@ -5749,7 +5749,7 @@ long smb_ReceiveV3LockingX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
|
|
||||||
wlRequest = malloc(sizeof(smb_waitingLockRequest_t));
|
wlRequest = malloc(sizeof(smb_waitingLockRequest_t));
|
||||||
|
|
||||||
osi_assert(wlRequest != NULL);
|
osi_assertx(wlRequest != NULL, "null wlRequest");
|
||||||
|
|
||||||
wlRequest->vcp = vcp;
|
wlRequest->vcp = vcp;
|
||||||
smb_HoldVC(vcp);
|
smb_HoldVC(vcp);
|
||||||
@ -5780,7 +5780,7 @@ long smb_ReceiveV3LockingX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
|
|
||||||
wLock = malloc(sizeof(smb_waitingLock_t));
|
wLock = malloc(sizeof(smb_waitingLock_t));
|
||||||
|
|
||||||
osi_assert(wLock != NULL);
|
osi_assertx(wLock != NULL, "null smb_waitingLock_t");
|
||||||
|
|
||||||
wLock->key = tkey;
|
wLock->key = tkey;
|
||||||
wLock->LOffset = tOffset;
|
wLock->LOffset = tOffset;
|
||||||
@ -5794,7 +5794,7 @@ long smb_ReceiveV3LockingX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
|
|
||||||
wLock = malloc(sizeof(smb_waitingLock_t));
|
wLock = malloc(sizeof(smb_waitingLock_t));
|
||||||
|
|
||||||
osi_assert(wLock != NULL);
|
osi_assertx(wLock != NULL, "null smb_waitingLock_t");
|
||||||
|
|
||||||
wLock->key = key;
|
wLock->key = key;
|
||||||
wLock->LOffset = LOffset;
|
wLock->LOffset = LOffset;
|
||||||
@ -6778,7 +6778,7 @@ long smb_ReceiveNTCreateX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
code = 0;
|
code = 0;
|
||||||
while (code == 0 && scp->fileType == CM_SCACHETYPE_SYMLINK) {
|
while (code == 0 && scp->fileType == CM_SCACHETYPE_SYMLINK) {
|
||||||
targetScp = 0;
|
targetScp = 0;
|
||||||
osi_assert(dscp != NULL);
|
osi_assertx(dscp != NULL, "null cm_scache_t");
|
||||||
code = cm_EvaluateSymLink(dscp, scp, &targetScp, userp, &req);
|
code = cm_EvaluateSymLink(dscp, scp, &targetScp, userp, &req);
|
||||||
if (code == 0) {
|
if (code == 0) {
|
||||||
/* we have a more accurate file to use (the
|
/* we have a more accurate file to use (the
|
||||||
@ -6818,7 +6818,7 @@ long smb_ReceiveNTCreateX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
free(realPathp);
|
free(realPathp);
|
||||||
return CM_ERROR_NOSUCHFILE;
|
return CM_ERROR_NOSUCHFILE;
|
||||||
} else if (realDirFlag == 0 || realDirFlag == -1) {
|
} else if (realDirFlag == 0 || realDirFlag == -1) {
|
||||||
osi_assert(dscp != NULL);
|
osi_assertx(dscp != NULL, "null cm_scache_t");
|
||||||
osi_Log1(smb_logp, "smb_ReceiveNTCreateX creating file %s",
|
osi_Log1(smb_logp, "smb_ReceiveNTCreateX creating file %s",
|
||||||
osi_LogSaveString(smb_logp, lastNamep));
|
osi_LogSaveString(smb_logp, lastNamep));
|
||||||
openAction = 2; /* created file */
|
openAction = 2; /* created file */
|
||||||
@ -6876,7 +6876,7 @@ long smb_ReceiveNTCreateX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
/* create directory */
|
/* create directory */
|
||||||
if ( !treeCreate )
|
if ( !treeCreate )
|
||||||
treeStartp = lastNamep;
|
treeStartp = lastNamep;
|
||||||
osi_assert(dscp != NULL);
|
osi_assertx(dscp != NULL, "null cm_scache_t");
|
||||||
osi_Log1(smb_logp, "smb_ReceiveNTCreateX creating directory [%s]",
|
osi_Log1(smb_logp, "smb_ReceiveNTCreateX creating directory [%s]",
|
||||||
osi_LogSaveString(smb_logp, treeStartp));
|
osi_LogSaveString(smb_logp, treeStartp));
|
||||||
openAction = 2; /* created directory */
|
openAction = 2; /* created directory */
|
||||||
@ -7012,7 +7012,7 @@ long smb_ReceiveNTCreateX(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *outp)
|
|||||||
|
|
||||||
/* open the file itself */
|
/* open the file itself */
|
||||||
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
||||||
osi_assert(fidp);
|
osi_assertx(fidp, "null smb_fid_t");
|
||||||
|
|
||||||
/* save a reference to the user */
|
/* save a reference to the user */
|
||||||
cm_HoldUser(userp);
|
cm_HoldUser(userp);
|
||||||
@ -7550,7 +7550,7 @@ long smb_ReceiveNTTranCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *out
|
|||||||
return CM_ERROR_NOSUCHFILE;
|
return CM_ERROR_NOSUCHFILE;
|
||||||
}
|
}
|
||||||
else if (realDirFlag == 0 || realDirFlag == -1) {
|
else if (realDirFlag == 0 || realDirFlag == -1) {
|
||||||
osi_assert(dscp != NULL);
|
osi_assertx(dscp != NULL, "null cm_scache_t");
|
||||||
osi_Log1(smb_logp, "smb_ReceiveNTTranCreate creating file %s",
|
osi_Log1(smb_logp, "smb_ReceiveNTTranCreate creating file %s",
|
||||||
osi_LogSaveString(smb_logp, lastNamep));
|
osi_LogSaveString(smb_logp, lastNamep));
|
||||||
openAction = 2; /* created file */
|
openAction = 2; /* created file */
|
||||||
@ -7601,7 +7601,7 @@ long smb_ReceiveNTTranCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *out
|
|||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
/* create directory */
|
/* create directory */
|
||||||
osi_assert(dscp != NULL);
|
osi_assertx(dscp != NULL, "null cm_scache_t");
|
||||||
osi_Log1(smb_logp,
|
osi_Log1(smb_logp,
|
||||||
"smb_ReceiveNTTranCreate creating directory %s",
|
"smb_ReceiveNTTranCreate creating directory %s",
|
||||||
osi_LogSaveString(smb_logp, lastNamep));
|
osi_LogSaveString(smb_logp, lastNamep));
|
||||||
@ -7679,7 +7679,7 @@ long smb_ReceiveNTTranCreate(smb_vc_t *vcp, smb_packet_t *inp, smb_packet_t *out
|
|||||||
|
|
||||||
/* open the file itself */
|
/* open the file itself */
|
||||||
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
fidp = smb_FindFID(vcp, 0, SMB_FLAG_CREATE);
|
||||||
osi_assert(fidp);
|
osi_assertx(fidp, "null smb_fid_t");
|
||||||
|
|
||||||
/* save a reference to the user */
|
/* save a reference to the user */
|
||||||
cm_HoldUser(userp);
|
cm_HoldUser(userp);
|
||||||
|
@ -334,7 +334,7 @@ long smb_IoctlV3Read(smb_fid_t *fidp, smb_vc_t *vcp, smb_packet_t *inp, smb_pack
|
|||||||
|
|
||||||
uidp = smb_FindUID(vcp, ((smb_t *)inp)->uid, 0);
|
uidp = smb_FindUID(vcp, ((smb_t *)inp)->uid, 0);
|
||||||
userp = smb_GetUserFromUID(uidp);
|
userp = smb_GetUserFromUID(uidp);
|
||||||
osi_assert(userp != 0);
|
osi_assertx(userp != NULL, "null cm_user_t");
|
||||||
iop->uidp = uidp;
|
iop->uidp = uidp;
|
||||||
if (uidp && uidp->unp) {
|
if (uidp && uidp->unp) {
|
||||||
osi_Log3(afsd_logp, "Ioctl uid %d user %x name %s",
|
osi_Log3(afsd_logp, "Ioctl uid %d user %x name %s",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user