Changeset 746 for vendor/current/source3/smbd/dir.c
- Timestamp:
- Nov 27, 2012, 4:56:06 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
vendor/current/source3/smbd/dir.c
r740 r746 261 261 } 262 262 263 if (sconn->using_smb2) { 264 goto done; 265 } 266 263 267 DLIST_REMOVE(sconn->searches.dirptrs, dptr); 264 268 … … 280 284 /* Lanman 2 specific code */ 281 285 SAFE_FREE(dptr->wcard); 282 string_set(&dptr->path,"");286 SAFE_FREE(dptr->path); 283 287 SAFE_FREE(dptr); 284 288 } … … 471 475 ZERO_STRUCTP(dptr); 472 476 477 dptr->path = SMB_STRDUP(path); 478 if (!dptr->path) { 479 SAFE_FREE(dptr); 480 TALLOC_FREE(dir_hnd); 481 return NT_STATUS_NO_MEMORY; 482 } 483 dptr->conn = conn; 484 dptr->dir_hnd = dir_hnd; 485 dptr->spid = spid; 486 dptr->expect_close = expect_close; 487 dptr->wcard = SMB_STRDUP(wcard); 488 if (!dptr->wcard) { 489 SAFE_FREE(dptr->path); 490 SAFE_FREE(dptr); 491 TALLOC_FREE(dir_hnd); 492 return NT_STATUS_NO_MEMORY; 493 } 494 if (lp_posix_pathnames() || (wcard[0] == '.' && wcard[1] == 0)) { 495 dptr->has_wild = True; 496 } else { 497 dptr->has_wild = wcard_has_wild; 498 } 499 500 dptr->attr = attr; 501 502 if (sconn->using_smb2) { 503 goto done; 504 } 505 473 506 if(old_handle) { 474 507 … … 494 527 if(dptr->dnum == -1 || dptr->dnum > 254) { 495 528 DEBUG(0,("dptr_create: returned %d: Error - all old dirptrs in use ?\n", dptr->dnum)); 529 SAFE_FREE(dptr->path); 530 SAFE_FREE(dptr->wcard); 496 531 SAFE_FREE(dptr); 497 532 TALLOC_FREE(dir_hnd); … … 524 559 if(dptr->dnum == -1 || dptr->dnum < 255) { 525 560 DEBUG(0,("dptr_create: returned %d: Error - all new dirptrs in use ?\n", dptr->dnum)); 561 SAFE_FREE(dptr->path); 562 SAFE_FREE(dptr->wcard); 526 563 SAFE_FREE(dptr); 527 564 TALLOC_FREE(dir_hnd); … … 535 572 dptr->dnum += 1; /* Always bias the dnum by one - no zero dnums allowed. */ 536 573 537 string_set(&dptr->path,path);538 dptr->conn = conn;539 dptr->dir_hnd = dir_hnd;540 dptr->spid = spid;541 dptr->expect_close = expect_close;542 dptr->wcard = SMB_STRDUP(wcard);543 if (!dptr->wcard) {544 bitmap_clear(sconn->searches.dptr_bmap, dptr->dnum - 1);545 SAFE_FREE(dptr);546 TALLOC_FREE(dir_hnd);547 return NT_STATUS_NO_MEMORY;548 }549 if (lp_posix_pathnames() || (wcard[0] == '.' && wcard[1] == 0)) {550 dptr->has_wild = True;551 } else {552 dptr->has_wild = wcard_has_wild;553 }554 555 dptr->attr = attr;556 557 574 DLIST_ADD(sconn->searches.dirptrs, dptr); 558 575 576 done: 559 577 DEBUG(3,("creating new dirptr %d for path %s, expect_close = %d\n", 560 578 dptr->dnum,path,expect_close)); … … 1328 1346 SMB_VFS_CLOSEDIR(dirp->conn,dirp->dir); 1329 1347 } 1330 if (dirp->conn->sconn ) {1348 if (dirp->conn->sconn && !dirp->conn->sconn->using_smb2) { 1331 1349 dirp->conn->sconn->searches.dirhandles_open--; 1332 1350 } … … 1359 1377 } 1360 1378 1361 if (sconn ) {1379 if (sconn && !sconn->using_smb2) { 1362 1380 sconn->searches.dirhandles_open++; 1363 1381 } … … 1403 1421 } 1404 1422 1405 if (sconn ) {1423 if (sconn && !sconn->using_smb2) { 1406 1424 sconn->searches.dirhandles_open++; 1407 1425 }
Note:
See TracChangeset
for help on using the changeset viewer.