os_strlcpy(bss->wds_bridge, pos, sizeof(bss->wds_bridge));
        } else if (os_strcmp(buf, "driver") == 0) {
                int j;
-               /* clear to get error below if setting is invalid */
-               conf->driver = NULL;
+               const struct wpa_driver_ops *driver = NULL;
+
                for (j = 0; wpa_drivers[j]; j++) {
                        if (os_strcmp(pos, wpa_drivers[j]->name) == 0) {
-                               conf->driver = wpa_drivers[j];
+                               driver = wpa_drivers[j];
                                break;
                        }
                }
-               if (conf->driver == NULL) {
+               if (!driver) {
                        wpa_printf(MSG_ERROR,
                                   "Line %d: invalid/unknown driver '%s'",
                                   line, pos);
                        return 1;
                }
+               conf->driver = driver;
        } else if (os_strcmp(buf, "driver_params") == 0) {
                os_free(conf->driver_params);
                conf->driver_params = os_strdup(pos);