Merge 10e1e1eb6f8c64872c7507b4d2f6253309afeb99 on remote branch

Change-Id: Ic69430e9e40730cec58f7d8157b1d29aa951eee8
diff --git a/jni/ipphelper/ipphelper.c b/jni/ipphelper/ipphelper.c
index 4545e59..702fcd6 100644
--- a/jni/ipphelper/ipphelper.c
+++ b/jni/ipphelper/ipphelper.c
@@ -52,6 +52,21 @@
  */
 static void parse_printerUris(ipp_t *response, printer_capabilities_t *capabilities);
 
+static inline const char* strnstr(const char* s, const char* needle, size_t len) {
+    if (len <= 0) return NULL;
+
+    const char c = *needle++;
+    const size_t needleLen = strlen(needle);
+    do {
+        do {
+            if (len <= (ssize_t)needleLen) return NULL;
+            --len;
+        } while (*s++ != c);
+    } while (memcmp(s, needle, needleLen) != 0);
+    s--;
+    return s;
+}
+
 /*
  * Known media sizes.
  *
@@ -1491,7 +1506,7 @@
         for (i = 0; i < ippGetCount(attrptr); i++) {
             int length = 0;
             const char *tray_str = ippGetOctetString(attrptr, i, &length);
-            if (strstr(tray_str, "faceUp") != NULL) {
+            if (length > 0 && strnstr(tray_str, "faceUp", (size_t)length) != NULL) {
                 capabilities->faceDownTray = 0;
             }
         }
diff --git a/res/values-am/strings.xml b/res/values-am/strings.xml
index 841468b..ffa8766 100644
--- a/res/values-am/strings.xml
+++ b/res/values-am/strings.xml
@@ -26,7 +26,7 @@
     <string name="printer_low_on_toner" msgid="8807858294038587130">"ቶነር በጣም ዝቅተኛ ነው"</string>
     <string name="printer_door_open" msgid="2446302931916940874">"በር ክፍት ነው"</string>
     <string name="printer_jammed" msgid="5104099859384749499">"ወረቀት ታጭቋል"</string>
-    <string name="printer_offline" msgid="9196864753298645066">"ከመስመር ውጪ"</string>
+    <string name="printer_offline" msgid="9196864753298645066">"ከመስመር ውጭ"</string>
     <string name="printer_bad_certificate" msgid="1366180387095466268">"መጥፎ የእውቅና ማረጋገጫ"</string>
     <string name="printer_not_encrypted" msgid="1913051469275483673">"አልተመሰጠረም"</string>
     <string name="printer_check" msgid="6428369671197132828">"አታሚን ይፈትሹ"</string>
diff --git a/res/values-mr/strings.xml b/res/values-mr/strings.xml
index d39030b..fbc1615 100644
--- a/res/values-mr/strings.xml
+++ b/res/values-mr/strings.xml
@@ -46,7 +46,7 @@
     <string name="add" msgid="1950342261671100906">"जोडा"</string>
     <string name="add_named" msgid="9074106244018070583">"<xliff:g id="PRINTER">%1$s</xliff:g> जोडा"</string>
     <string name="no_printer_found" msgid="4777867380924351173">"या पत्त्यावर कोणताही प्रिंटर सापडला नाही"</string>
-    <string name="printer_not_supported" msgid="281955849350938408">"प्रिंटरला समर्थित नाही"</string>
+    <string name="printer_not_supported" msgid="281955849350938408">"प्रिंटरला सपोर्ट नाही"</string>
     <string name="wifi_direct" msgid="4629404342852294985">"वाय-फाय थेट"</string>
     <string name="find_wifi_direct" msgid="5270504288829123954">"वाय-फाय डिरेक्ट प्रिंटर शोधा"</string>
     <string name="wifi_direct_printing" msgid="8423811041563144048">"वाय-फाय डिरेक्ट प्रिंटिंग"</string>
diff --git a/res/values-ro/strings.xml b/res/values-ro/strings.xml
index 1516ffe..f91a840 100644
--- a/res/values-ro/strings.xml
+++ b/res/values-ro/strings.xml
@@ -29,7 +29,7 @@
     <string name="printer_offline" msgid="9196864753298645066">"Offline"</string>
     <string name="printer_bad_certificate" msgid="1366180387095466268">"Certificat necorespunzător"</string>
     <string name="printer_not_encrypted" msgid="1913051469275483673">"Nu este criptată"</string>
-    <string name="printer_check" msgid="6428369671197132828">"Bifați imprimanta"</string>
+    <string name="printer_check" msgid="6428369671197132828">"Verifică imprimanta"</string>
     <string name="waiting_to_send" msgid="2022115199902822180">"Se așteaptă trimiterea"</string>
     <string name="unreadable_input" msgid="2199948329556527912">"Nu s-a putut citi documentul"</string>
     <string name="media_size_l" msgid="164416542021598181">"L"</string>
@@ -39,41 +39,41 @@
     <string name="media_size_8x10in" msgid="1872576638522812402">"8x10 inchi"</string>
     <string name="media_size_4x6in" msgid="3093276425529958253">"4x6 inchi"</string>
     <string name="printer_description" msgid="8580767673213837142">"%1$s – %2$s"</string>
-    <string name="title_activity_add_printer" msgid="9119216095769228566">"Adăugați o imprimantă"</string>
-    <string name="add_printer_by_ip" msgid="562864787592910327">"Adăugați imprimanta după adresa IP"</string>
+    <string name="title_activity_add_printer" msgid="9119216095769228566">"Adaugă o imprimantă"</string>
+    <string name="add_printer_by_ip" msgid="562864787592910327">"Adaugă imprimanta după adresa IP"</string>
     <string name="hostname_or_ip" msgid="3460546103553992915">"Nume de gazdă sau adresă IP"</string>
     <string name="ip_hint" msgid="7939777481941979799">"192.168.0.4"</string>
-    <string name="add" msgid="1950342261671100906">"Adăugați"</string>
-    <string name="add_named" msgid="9074106244018070583">"Adăugați imprimanta <xliff:g id="PRINTER">%1$s</xliff:g>"</string>
+    <string name="add" msgid="1950342261671100906">"Adaugă"</string>
+    <string name="add_named" msgid="9074106244018070583">"Adaugă imprimanta <xliff:g id="PRINTER">%1$s</xliff:g>"</string>
     <string name="no_printer_found" msgid="4777867380924351173">"Nu s-a găsit nicio imprimantă la această adresă"</string>
     <string name="printer_not_supported" msgid="281955849350938408">"Imprimanta nu este acceptată"</string>
     <string name="wifi_direct" msgid="4629404342852294985">"Wi-Fi Direct"</string>
-    <string name="find_wifi_direct" msgid="5270504288829123954">"Căutați imprimate cu Wi-Fi Direct"</string>
+    <string name="find_wifi_direct" msgid="5270504288829123954">"Caută imprimate cu Wi-Fi Direct"</string>
     <string name="wifi_direct_printing" msgid="8423811041563144048">"Printare prin Wi-Fi Direct"</string>
     <string name="wifi_direct_printers" msgid="541168032444693191">"Imprimante cu Wi-Fi Direct"</string>
     <string name="searching" msgid="2114018057619514587">"Se caută…"</string>
-    <string name="connect_hint_text" msgid="587112503851044234">"Poate fi necesar să aprobați această conexiune pe panoul frontal al imprimantei"</string>
+    <string name="connect_hint_text" msgid="587112503851044234">"Poate fi necesar să aprobi această conexiune pe panoul frontal al imprimantei"</string>
     <string name="connecting_to" msgid="2665161014972086194">"Se conectează la <xliff:g id="PRINTER">%1$s</xliff:g>"</string>
     <string name="failed_printer_connection" msgid="4196305972749960362">"Nu s-a putut realiza conexiunea la imprimantă"</string>
     <string name="failed_connection" msgid="8068661997318286575">"Nu s-a putut realiza conexiunea la <xliff:g id="PRINTER">%1$s</xliff:g>"</string>
     <string name="saved_printers" msgid="4567534965213125526">"Imprimante salvate"</string>
-    <string name="forget" msgid="892068061425802502">"Eliminați"</string>
+    <string name="forget" msgid="892068061425802502">"Elimină"</string>
     <string name="connects_via_wifi_direct" msgid="652300632780158437">"Se conectează prin Wi-Fi Direct"</string>
     <string name="connects_via_network" msgid="5990041581556733898">"Se conectează prin rețeaua curentă la <xliff:g id="IP_ADDRESS">%1$s</xliff:g>"</string>
     <string name="recommendation_summary" msgid="2979700524954307566">"Serviciul de printare prestabilit oferă opțiuni de bază. Alte opțiuni pentru această imprimantă pot fi disponibile din alt serviciu de printare."</string>
     <string name="recommendations_heading" msgid="5086762263560605249">"Servicii recomandate"</string>
-    <string name="recommendation_install_summary" msgid="374785283809791669">"Selectați pentru a instala"</string>
-    <string name="recommendation_enable_summary" msgid="3500907868251326224">"Selectați pentru a activa"</string>
-    <string name="recommendation_manage" msgid="4683640588502866284">"Gestionați serviciile"</string>
+    <string name="recommendation_install_summary" msgid="374785283809791669">"Selectează pentru a instala"</string>
+    <string name="recommendation_enable_summary" msgid="3500907868251326224">"Selectează pentru a activa"</string>
+    <string name="recommendation_manage" msgid="4683640588502866284">"Gestionează serviciile"</string>
     <string name="security" msgid="2279008326210305401">"Securitate"</string>
-    <string name="certificate_update_request" msgid="1314796413107139475">"Imprimanta a oferit un nou certificat de securitate sau un alt dispozitiv îi folosește identitatea. Acceptați noul certificat?"</string>
-    <string name="not_encrypted_request" msgid="4871472176807381642">"Această imprimantă nu mai acceptă sarcini criptate. Continuați printarea?"</string>
-    <string name="accept" msgid="4426153292469698134">"Acceptați"</string>
-    <string name="reject" msgid="24751635160440693">"Respingeți"</string>
+    <string name="certificate_update_request" msgid="1314796413107139475">"Imprimanta a oferit un nou certificat de securitate sau un alt dispozitiv îi folosește identitatea. Accepți noul certificat?"</string>
+    <string name="not_encrypted_request" msgid="4871472176807381642">"Această imprimantă nu mai acceptă sarcini criptate. Continui printarea?"</string>
+    <string name="accept" msgid="4426153292469698134">"Acceptă"</string>
+    <string name="reject" msgid="24751635160440693">"Respinge"</string>
     <string name="connections" msgid="8895413761760117180">"Conexiuni"</string>
     <string name="wifi_direct_problem" msgid="8995174986718516990">"Serviciul de imprimare prestabilită nu găsește imprimante cu Wi-Fi Direct"</string>
-    <string name="disable_wifi_direct" msgid="4824677957241687577">"Dezactivați Wi-Fi Direct"</string>
+    <string name="disable_wifi_direct" msgid="4824677957241687577">"Dezactivează Wi-Fi Direct"</string>
     <string name="wifi_direct_permission_rationale" msgid="4671416845852665202">"Serviciul de imprimare prestabilită necesită permisiunea Dispozitive din apropiere pentru a găsi imprimante în apropiere."</string>
-    <string name="fix" msgid="7784394272611365393">"Examinați permisiunea"</string>
-    <string name="print" msgid="7851318072404916362">"Printați"</string>
+    <string name="fix" msgid="7784394272611365393">"Vezi permisiunea"</string>
+    <string name="print" msgid="7851318072404916362">"Printează"</string>
 </resources>
diff --git a/res/values-sw/strings.xml b/res/values-sw/strings.xml
index ae2a946..4e8dde1 100644
--- a/res/values-sw/strings.xml
+++ b/res/values-sw/strings.xml
@@ -49,7 +49,7 @@
     <string name="printer_not_supported" msgid="281955849350938408">"Printa haiwezi kutumika"</string>
     <string name="wifi_direct" msgid="4629404342852294985">"Wi-Fi moja kwa moja"</string>
     <string name="find_wifi_direct" msgid="5270504288829123954">"Tafuta printa za Wi-Fi moja kwa moja"</string>
-    <string name="wifi_direct_printing" msgid="8423811041563144048">"Uchapishaji kupitia Wi-Fi moja kwa moja"</string>
+    <string name="wifi_direct_printing" msgid="8423811041563144048">"Chapisha kupitia Wi-Fi moja kwa moja"</string>
     <string name="wifi_direct_printers" msgid="541168032444693191">"Printa zinazotumia Wi-Fi moja kwa moja"</string>
     <string name="searching" msgid="2114018057619514587">"Inatafuta…"</string>
     <string name="connect_hint_text" msgid="587112503851044234">"Utahitaji kuidhinisha muunganisho huu kwenye kidirisha cha mbele cha printa yako"</string>
diff --git a/res/values-te/strings.xml b/res/values-te/strings.xml
index 2745920..3715d68 100644
--- a/res/values-te/strings.xml
+++ b/res/values-te/strings.xml
@@ -29,7 +29,7 @@
     <string name="printer_offline" msgid="9196864753298645066">"ఆఫ్‌లైన్"</string>
     <string name="printer_bad_certificate" msgid="1366180387095466268">"సర్టిఫికెట్‌ చెల్లదు"</string>
     <string name="printer_not_encrypted" msgid="1913051469275483673">"ఎన్‌క్రిప్ట్ చేయబడలేదు"</string>
-    <string name="printer_check" msgid="6428369671197132828">"ప్రింటర్‌ని తనిఖీ చేయి"</string>
+    <string name="printer_check" msgid="6428369671197132828">"ప్రింటర్‌ని చెక్ చేయండి"</string>
     <string name="waiting_to_send" msgid="2022115199902822180">"పంపడానికి వేచి ఉంది"</string>
     <string name="unreadable_input" msgid="2199948329556527912">"డాక్యుమెంట్‌ను చదవడం సాధ్యం కాలేదు"</string>
     <string name="media_size_l" msgid="164416542021598181">"L"</string>
@@ -74,6 +74,6 @@
     <string name="wifi_direct_problem" msgid="8995174986718516990">"ఆటోమేటిక్ ప్రింట్ సర్వీస్, Wi-Fi Direct ప్రింటర్‌లను కనుగొనలేకపోయింది"</string>
     <string name="disable_wifi_direct" msgid="4824677957241687577">"Wi-Fi Directను డిజేబుల్ చేయి"</string>
     <string name="wifi_direct_permission_rationale" msgid="4671416845852665202">"సమీపంలోని ప్రింటర్‌లను కనుగొనడానికి ఆటోమేటిక్ ప్రింట్ సర్వీస్‌కు సమీపంలోని పరికరాల అనుమతి అవసరం."</string>
-    <string name="fix" msgid="7784394272611365393">"అనుమతిని సమీక్షించు"</string>
+    <string name="fix" msgid="7784394272611365393">"అనుమతిని రివ్యూ చేయండి"</string>
     <string name="print" msgid="7851318072404916362">"ప్రింట్ చేయి"</string>
 </resources>