Author: jra
Date: 2006-03-13 22:50:02 +0000 (Mon, 13 Mar 2006)
New Revision: 14352

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=14352

Log:
Ensure we use the minimum of PATH_MAX and sizeof(pstring).
Fix Coverity #59.
Jeremy.

Modified:
   trunk/source/client/client.c


Changeset:
Modified: trunk/source/client/client.c
===================================================================
--- trunk/source/client/client.c        2006-03-13 22:49:56 UTC (rev 14351)
+++ trunk/source/client/client.c        2006-03-13 22:50:02 UTC (rev 14352)
@@ -2919,16 +2919,22 @@
        info.text = text;
        info.len = len;
                
-       if (len >= PATH_MAX)
+       if (len >= MIN(PATH_MAX,sizeof(pstring))) {
                return(NULL);
+       }
 
        info.matches = SMB_MALLOC_ARRAY(char *,MAX_COMPLETIONS);
-       if (!info.matches) return NULL;
+       if (!info.matches) {
+               return NULL;
+       }
        info.matches[0] = NULL;
 
-       for (i = len-1; i >= 0; i--)
-               if ((text[i] == '/') || (text[i] == '\\'))
+       for (i = len-1; i >= 0; i--) {
+               if ((text[i] == '/') || (text[i] == '\\')) {
                        break;
+               }
+       }
+
        info.text = text+i+1;
        info.samelen = info.len = len-i-1;
 
@@ -2936,8 +2942,9 @@
                strncpy(info.dirmask, text, i+1);
                info.dirmask[i+1] = 0;
                pstr_sprintf(dirmask, "%s%*s*", cur_dir, i-1, text);
-       } else
+       } else {
                pstr_sprintf(dirmask, "%s*", cur_dir);
+       }
 
        if (cli_list(cli, dirmask, aDIR | aSYSTEM | aHIDDEN, 
completion_remote_filter, &info) < 0)
                goto cleanup;

Reply via email to