Fixes from clang / scan-build
[freeradius.git] / src / modules / rlm_realm / rlm_realm.c
index 4592c1b..6006769 100644 (file)
@@ -60,7 +60,7 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm
 {
        char namebuf[MAX_STRING_LEN];
        char *username;
-       char *realmname = NULL;
+       const char *realmname = NULL;
        char *ptr;
        VALUE_PAIR *vp;
        REALM *realm;
@@ -80,11 +80,13 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm
         *      Also, if there's no User-Name attribute, we can't
         *      proxy it, either.
         */
+#ifdef WITH_PROXY
        if ((request->proxy != NULL) ||
            (request->username == NULL)) {
                RDEBUG2("Proxy reply, or no User-Name.  Ignoring.");
                return RLM_MODULE_OK;
        }
+#endif
 
        /*
         *      Check for 'Realm' attribute.  If it exists, then we've proxied
@@ -109,10 +111,10 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm
        case REALM_FORMAT_SUFFIX:
 
          /* DEBUG2("  rlm_realm: Checking for suffix after \"%c\"", inst->delim[0]); */
-               realmname = strrchr(username, inst->delim[0]);
-               if (realmname) {
-                       *realmname = '\0';
-                       realmname++;
+               ptr = strrchr(username, inst->delim[0]);
+               if (ptr) {
+                       *ptr = '\0';
+                       realmname = ptr + 1;
                }
                break;
 
@@ -180,7 +182,7 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm
                 */
                if (request->username->attribute != PW_STRIPPED_USER_NAME) {
                        vp = radius_paircreate(request, &request->packet->vps,
-                                              PW_STRIPPED_USER_NAME,
+                                              PW_STRIPPED_USER_NAME, 0,
                                               PW_TYPE_STRING);
                        RDEBUG2("Adding Stripped-User-Name = \"%s\"", username);
                } else {
@@ -236,6 +238,7 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm
                break;
        }
 
+#ifdef WITH_PROXY
        RDEBUG2("Proxying request from user %s to realm %s",
               username, realm->name);
 
@@ -310,11 +313,13 @@ static int check_for_realm(void *instance, REQUEST *request, REALM **returnrealm
                }
 
        }
+#endif
 
        /*
         *      We got this far, which means we have a realm, set returnrealm
         */
        *returnrealm = realm;
+
        return RLM_MODULE_UPDATED;
 }