[SCM] Samba Shared Repository - branch master updated
Andreas Schneider
asn at samba.org
Thu Apr 27 09:26:01 UTC 2023
The branch, master has been updated
via 6490ff63552 s3:lib: Give better warnings about corrupted AppleDobule files
via a269ab4a9b5 s3:lib: Move ad_unpack() debug message to notice level
from e38f864017a gitlab-ci: Update Fedora to version 38
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 6490ff635521295b1f55f697f1950e1721d543ca
Author: Andreas Schneider <asn at samba.org>
Date: Wed Apr 26 08:40:29 2023 +0200
s3:lib: Give better warnings about corrupted AppleDobule files
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
Autobuild-User(master): Andreas Schneider <asn at cryptomilk.org>
Autobuild-Date(master): Thu Apr 27 09:25:50 UTC 2023 on atb-devel-224
commit a269ab4a9b5c75e41ecb0cba4cfd13d1f1aa2737
Author: Andreas Schneider <asn at samba.org>
Date: Wed Apr 26 08:30:38 2023 +0200
s3:lib: Move ad_unpack() debug message to notice level
We should give a good warning message one level above.
Signed-off-by: Andreas Schneider <asn at samba.org>
Reviewed-by: Andrew Bartlett <abartlet at samba.org>
-----------------------------------------------------------------------
Summary of changes:
source3/lib/adouble.c | 72 +++++++++++++++++++++++++++++++++------------------
1 file changed, 47 insertions(+), 25 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source3/lib/adouble.c b/source3/lib/adouble.c
index 062c73ec758..81229310c13 100644
--- a/source3/lib/adouble.c
+++ b/source3/lib/adouble.c
@@ -967,14 +967,14 @@ static bool ad_unpack(struct adouble *ad, const size_t nentries,
*/
if (bufsize < (AD_HEADER_LEN + (AD_ENTRY_LEN * nentries))) {
- DEBUG(1, ("bad size\n"));
+ DBG_NOTICE("Bad size\n");
return false;
}
ad->ad_magic = RIVAL(ad->ad_data, 0);
ad->ad_version = RIVAL(ad->ad_data, ADEDOFF_VERSION);
if ((ad->ad_magic != AD_MAGIC) || (ad->ad_version != AD_VERSION)) {
- DEBUG(1, ("wrong magic or version\n"));
+ DBG_NOTICE("Wrong magic or version\n");
return false;
}
@@ -982,8 +982,7 @@ static bool ad_unpack(struct adouble *ad, const size_t nentries,
adentries = RSVAL(ad->ad_data, ADEDOFF_NENTRIES);
if (adentries != nentries) {
- DEBUG(1, ("invalid number of entries: %zu\n",
- adentries));
+ DBG_NOTICE("Invalid number of entries: %zu\n", adentries);
return false;
}
@@ -995,7 +994,7 @@ static bool ad_unpack(struct adouble *ad, const size_t nentries,
len = RIVAL(ad->ad_data, AD_HEADER_LEN + (i * AD_ENTRY_LEN) + 8);
if (!eid || eid >= ADEID_MAX) {
- DEBUG(1, ("bogus eid %d\n", eid));
+ DBG_NOTICE("Bogus eid %d\n", eid);
return false;
}
@@ -1005,16 +1004,22 @@ static bool ad_unpack(struct adouble *ad, const size_t nentries,
* ensure the specified offset is within that bound
*/
if ((off > bufsize) && (eid != ADEID_RFORK)) {
- DEBUG(1, ("bogus eid %d: off: %" PRIu32 ", len: %" PRIu32 "\n",
- eid, off, len));
+ DBG_NOTICE("Fogus eid %d: off: %" PRIu32
+ ", len: %" PRIu32 "\n",
+ eid,
+ off,
+ len);
return false;
}
ok = ad_entry_check_size(eid, bufsize, off, len);
if (!ok) {
- DBG_ERR("bogus eid [%"PRIu32"] bufsize [%zu] "
- "off [%"PRIu32"] len [%"PRIu32"]\n",
- eid, bufsize, off, len);
+ DBG_NOTICE("bogus eid [%" PRIu32 "] bufsize [%zu] "
+ "off [%" PRIu32 "] len [%" PRIu32 "]\n",
+ eid,
+ bufsize,
+ off,
+ len);
return false;
}
@@ -1022,8 +1027,11 @@ static bool ad_unpack(struct adouble *ad, const size_t nentries,
* That would be obviously broken
*/
if (off > filesize) {
- DEBUG(1, ("bogus eid %d: off: %" PRIu32 ", len: %" PRIu32 "\n",
- eid, off, len));
+ DBG_NOTICE("Bogus eid %d: off: %" PRIu32
+ ", len: %" PRIu32 "\n",
+ eid,
+ off,
+ len);
return false;
}
@@ -1032,9 +1040,11 @@ static bool ad_unpack(struct adouble *ad, const size_t nentries,
* filesize.
*/
if (off + len < off) {
- DEBUG(1, ("offset wrap in eid %d: off: %" PRIu32
- ", len: %" PRIu32 "\n",
- eid, off, len));
+ DBG_NOTICE("offset wrap in eid %d: off: %" PRIu32
+ ", len: %" PRIu32 "\n",
+ eid,
+ off,
+ len);
return false;
}
@@ -1045,9 +1055,11 @@ static bool ad_unpack(struct adouble *ad, const size_t nentries,
* out.
*/
if (eid != ADEID_RFORK) {
- DEBUG(1, ("bogus eid %d: off: %" PRIu32
- ", len: %" PRIu32 "\n",
- eid, off, len));
+ DBG_NOTICE("Bogus eid %d: off: %" PRIu32
+ ", len: %" PRIu32 "\n",
+ eid,
+ off,
+ len);
return false;
}
@@ -1056,8 +1068,10 @@ static bool ad_unpack(struct adouble *ad, const size_t nentries,
* the size to entryoffset - filesize.
*/
len = filesize - off;
- DEBUG(1, ("Limiting ADEID_RFORK: off: %" PRIu32
- ", len: %" PRIu32 "\n", off, len));
+ DBG_NOTICE("Limiting ADEID_RFORK: off: %" PRIu32
+ ", len: %" PRIu32 "\n",
+ off,
+ len);
}
ad->ad_eid[eid].ade_off = off;
@@ -2151,7 +2165,11 @@ static ssize_t ad_read_meta(vfs_handle_struct *handle,
/* Now parse entries */
ok = ad_unpack(ad, ADEID_NUM_XATTR, AD_DATASZ_XATTR);
if (!ok) {
- DEBUG(2, ("invalid AppleDouble metadata xattr\n"));
+ DBG_WARNING(
+ "Invalid AppleDouble xattr metadata (%s) in file: %s - "
+ "Consider deleting the corrupted file.\n",
+ smb_fname->base_name,
+ ad->ad_fsp->fsp_name->base_name);
errno = EINVAL;
rc = -1;
goto exit;
@@ -2360,8 +2378,10 @@ static ssize_t ad_read_rsrc_adouble(vfs_handle_struct *handle,
ADEID_NUM_DOT_UND,
ad->ad_fsp->fsp_name->st.st_ex_size);
if (!ok) {
- DBG_ERR("invalid AppleDouble resource %s\n",
- smb_fname->base_name);
+ DBG_WARNING("Invalid AppleDouble resource (%s) in file: %s - "
+ "Consider deleting the corrupted file.\n",
+ smb_fname->base_name,
+ ad->ad_fsp->fsp_name->base_name);
errno = EINVAL;
return -1;
}
@@ -2370,8 +2390,10 @@ static ssize_t ad_read_rsrc_adouble(vfs_handle_struct *handle,
|| (ad_getentrylen(ad, ADEID_FINDERI) < ADEDLEN_FINDERI)
|| (ad_getentryoff(ad, ADEID_RFORK) < ADEDOFF_RFORK_DOT_UND))
{
- DBG_ERR("invalid AppleDouble resource %s\n",
- smb_fname->base_name);
+ DBG_WARNING("Invalid AppleDouble resource (%s) in file: %s - "
+ "Consider deleting the corrupted file.\n",
+ smb_fname->base_name,
+ ad->ad_fsp->fsp_name->base_name);
errno = EINVAL;
return -1;
}
--
Samba Shared Repository
More information about the samba-cvs
mailing list