---
 include/types.h |    2 +-
 src/common.c    |   12 ++++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/include/types.h b/include/types.h
index ba2481f..b3d2247 100644
--- a/include/types.h
+++ b/include/types.h
@@ -76,7 +76,7 @@ struct ofono_error {
        int error;
 };
 
-#define OFONO_MAX_PHONE_NUMBER_LENGTH 20
+#define OFONO_MAX_PHONE_NUMBER_LENGTH 120
 
 struct ofono_phone_number {
        char number[OFONO_MAX_PHONE_NUMBER_LENGTH + 1];
diff --git a/src/common.c b/src/common.c
index b5b9a6f..de5a508 100644
--- a/src/common.c
+++ b/src/common.c
@@ -253,7 +253,7 @@ gboolean valid_phone_number_format(const char *number)
                if (number[i] >= '0' && number[i] <= '9')
                        continue;
 
-               if (number[i] == '*' || number[i] == '#')
+               if (number[i] == '*' || number[i] == '#' || number[i] == 'p')
                        continue;
 
                return FALSE;
@@ -379,18 +379,18 @@ int mmi_service_code_to_bearer_class(int code)
 
 const char *phone_number_to_string(const struct ofono_phone_number *ph)
 {
-       static char buffer[64];
+       static char buffer[(OFONO_MAX_PHONE_NUMBER_LENGTH + 1) + 1];
 
        if (ph->type == 145 && (strlen(ph->number) > 0) &&
                        ph->number[0] != '+') {
                buffer[0] = '+';
-               strncpy(buffer + 1, ph->number, 62);
-               buffer[63] = '\0';
+               strncpy(buffer + 1, ph->number, sizeof(buffer) - 2);
        } else {
-               strncpy(buffer, ph->number, 63);
-               buffer[63] = '\0';
+               strncpy(buffer, ph->number, sizeof(buffer) - 1);
        }
 
+       buffer[sizeof(buffer) - 1] = '\0';
+
        return buffer;
 }
 
-- 
1.7.0.4

_______________________________________________
ofono mailing list
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to