[SCM] Samba Shared Repository - branch v3-2-test updated - initial-v3-2-test-2056-g2e27309

Jeremy Allison jra at samba.org
Sat Feb 9 03:03:29 GMT 2008


The branch, v3-2-test has been updated
       via  2e27309401faa554620886b0e369db9d9c08e4fd (commit)
      from  101f194795f87c709abfdfbcde710131a88f9d20 (commit)

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-2-test


- Log -----------------------------------------------------------------
commit 2e27309401faa554620886b0e369db9d9c08e4fd
Author: Jeremy Allison <jra at samba.org>
Date:   Fri Feb 8 19:02:49 2008 -0800

    Make clilist work again with OS/2 (kukks help!).
    Jeremy.

-----------------------------------------------------------------------

Summary of changes:
 source/libsmb/clilist.c |   18 +++++++++++++++++-
 1 files changed, 17 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source/libsmb/clilist.c b/source/libsmb/clilist.c
index 2b5e751..d913096 100644
--- a/source/libsmb/clilist.c
+++ b/source/libsmb/clilist.c
@@ -78,9 +78,25 @@ static size_t interpret_long_filename(TALLOC_CTX *ctx,
 			len = CVAL(p, 26);
 			p += 27;
 			p += clistr_align_in(cli, p, 0);
-			if (p + len + 2 > pdata_end) {
+
+			/* We can safely use +1 here (which is required by OS/2)
+			 * instead of +2 as the STR_TERMINATE flag below is
+			 * actually used as the length calculation.
+			 * The len+2 is merely an upper bound.
+			 * We ensure we don't get a one byte overread by
+			 * doing a zero termination at pdata_end[-1];
+			 * JRA + kukks */
+
+			if (p + len + 1 > pdata_end) {
 				return pdata_end - base;
 			}
+
+			/* Ensure the null termination (see above). */
+			{
+				char *pend = CONST_DISCARD(char *, pdata_end);
+				pend[-1] = '\0';
+			}
+
 			/* the len+2 below looks strange but it is
 			   important to cope with the differences
 			   between win2000 and win9x for this call


-- 
Samba Shared Repository


More information about the samba-cvs mailing list