]> git.sur5r.net Git - bacula/bacula/commitdiff
Avoid extra strlen() in is_name_valid()
authorEric Bollengier <eric@eb.homelinux.org>
Mon, 7 Feb 2011 16:49:50 +0000 (17:49 +0100)
committerKern Sibbald <kern@sibbald.com>
Sat, 20 Apr 2013 12:40:02 +0000 (14:40 +0200)
bacula/src/lib/edit.c
bacula/src/lib/protos.h

index d77d8bfaff4ae944926962c7bfc902a117e4cbcf..4192ece51ef0650cc2da371c4f77772bfdc1ea26 100644 (file)
@@ -466,13 +466,20 @@ bool is_an_integer(const char *n)
  * Check if the Volume name has legal characters
  * If ua is non-NULL send the message
  */
-bool is_name_valid(char *name, POOLMEM **msg)
+bool is_name_valid(const char *name, POOLMEM **msg)
 {
    int len;
-   char *p;
+   const char *p;
    /* Special characters to accept */
    const char *accept = ":.-_ ";
 
+   /* No name is invalid */
+   if (!name) {
+      if (msg) {
+         Mmsg(msg, _("Empty name not allowed.\n"));
+      }
+      return false;
+   }
    /* Restrict the characters permitted in the Volume name */
    for (p=name; *p; p++) {
       if (B_ISALPHA(*p) || B_ISDIGIT(*p) || strchr(accept, (int)(*p))) {
@@ -483,7 +490,7 @@ bool is_name_valid(char *name, POOLMEM **msg)
       }
       return false;
    }
-   len = strlen(name);
+   len = p - name;
    if (len >= MAX_NAME_LENGTH) {
       if (msg) {
          Mmsg(msg, _("Name too long.\n"));
index 8a18b459080884c2550a54858fc0e3e3cba47033..42254795b41f662074513e3efa2ac010d0cc2502 100644 (file)
@@ -190,7 +190,7 @@ char             *edit_utime             (utime_t val, char *buf, int buf_len);
 bool             is_a_number             (const char *num);
 bool             is_a_number_list        (const char *n);
 bool             is_an_integer           (const char *n);
-bool             is_name_valid           (char *name, POOLMEM **msg);
+bool             is_name_valid           (const char *name, POOLMEM **msg);
 
 /* jcr.c (most definitions are in src/jcr.h) */
 void     init_last_jobs_list();