Jeremy.
#define VALID_STAT(st) ((st).st_nlink != 0)
#define VALID_STAT_OF_DIR(st) (VALID_STAT(st) && S_ISDIR((st).st_mode))
+#define SET_STAT_INVALID(st) ((st).st_nlink = 0)
#ifndef MIN
#define MIN(a,b) ((a)<(b)?(a):(b))
SMB_STRUCT_STAT stat_buf;
BOOL bad_path;
- ZERO_STRUCT(st);
- ZERO_STRUCT(stat_buf);
+ SET_STAT_INVALID(st);
+ SET_STAT_INVALID(stat_buf);
new_create_time = (time_t)0;
old_create_time = (time_t)0;
SMB_STRUCT_STAT st;
connection_struct *conn;
- ZERO_STRUCT(st);
+ SET_STAT_INVALID(st);
*perr = WERR_INVALID_PARAM;
{
pstring pathreal;
- ZERO_STRUCTP(pst);
+ SET_STAT_INVALID(pst);
if (dptr->has_wild) {
return dptr_normal_ReadDirName(dptr, poffset, pst);
BOOL dptr_SearchDir(struct dptr_struct *dptr, const char *name, long *poffset, SMB_STRUCT_STAT *pst)
{
- ZERO_STRUCTP(pst);
+ SET_STAT_INVALID(pst);
if (!dptr->has_wild && (dptr->dir_hnd->offset == -1)) {
/* This is a singleton directory and we're already at the end. */
BOOL hide_unwriteable = lp_hideunwriteable_files(SNUM(conn));
BOOL hide_special = lp_hide_special_files(SNUM(conn));
- ZERO_STRUCTP(pst);
+ SET_STAT_INVALID(pst);
if ((strcmp(".",name) == 0) || (strcmp("..",name) == 0)) {
return True; /* . and .. are always visible. */
BOOL component_was_mangled = False;
BOOL name_has_wildcard = False;
- ZERO_STRUCTP(pst);
+ SET_STAT_INVALID(pst);
*dirpath = 0;
*bad_path = False;
pstring rest;
/* Stat failed - ensure we don't use it. */
- ZERO_STRUCT(st);
+ SET_STAT_INVALID(st);
*rest = 0;
/*
if (SMB_VFS_STAT(conn,name, &st) == 0) {
*pst = st;
} else {
- ZERO_STRUCT(st);
+ SET_STAT_INVALID(st);
}
}
} /* end else */
offset = 0;
while ((fname = ReadDirName(dp, &offset))) {
- ZERO_STRUCT(st);
+ SET_STAT_INVALID(st);
if(strequal(fname, ".") || strequal(fname, ".."))
continue;
*user = 0;
fstrcpy(dev, pdev);
- ZERO_STRUCT(st);
+ SET_STAT_INVALD(st);
if (NT_STATUS_IS_ERR(*status = share_sanity_checks(snum, dev))) {
return NULL;